1EdTech Candidate Final

1EdTech Logo

1EdTech Access for All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0

1EdTech Candidate Final
Version 1.0

Date Issued: 1st May, 2024
Latest version: http://www.imsglobal.org/activity/afa/latest/

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in IMS specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/1edtechipr_policyFinal.pdf.

Copyright © 2024 1EdTech Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/speclicense.html.

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 1EdTech or its successors or assigns.

THIS SPECIFICATION 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 IMPLEMENTER'S 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 SPECIFICATION.

Public contributions, comments and questions can be posted here: www.1edtech.org/forums/1edtech-public-forums-and-resources.

Trademark information: http://www.1edtech.org/copyright.html

Document Name: 1EdTech Access for All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding v1.0

Revision: 1st May, 2024

toc | top

Executive Summary

The Access For All Specification (AfA) is intended to promote an inclusive user experience by enabling the matching of the characteristics of resources to the needs and preferences of individual users. The AfA specification consists of a common language for describing:

The original AfA PNP data model specification is intended to meet the needs of learners with disabilities and of anyone in a disabling context. The purpose of the AfA PNP Specification is to provide a machine-readable method of stating user needs and preferences with respect to digitally based education or learning. The AfA PNP specification can be used independently, for example to deliver the required or desired user interface to the user, or in combination with the AfADRD [AFADRD-DM-30] to deliver digital resources that meet a user's needs and preferences.

The 1EdTech Access for All Personal Needs and Preferences Service, defined and described in this document, creates an API wrapper that surrounds the original AFA PNP data model [AFAPNP-DM-30]. This new AfA PNP service specification consists of:

In this document the data exchange is described for a REST/JSON based technology exchange. The service description includes the definition of the JSON paylaod formats that are exchanged using a set of HTTP calls.

toc | top

Table of Contents

Executive Summary

1. Introduction

1.1 Scope and Context

1.2 Conventions

1.3 Compatibility with AFA PNP Data Models

1.4 Structure of this Document

1.5 Nomenclature

2. REST Endpoints

2.1 Mapping of the Service Operations to the REST Endpoints

2.2 API Root URL and Versioning

2.3 Predefined Endpoint Query Parameters

2.3.1 "addAfAPNPRecordForUserForActivity" Endpoint Query Parameters

2.3.2 "createAfAPNPRecordForUserForActivity" Endpoint Query Parameters

2.3.3 "deleteAfAPNPRecordForUserForActivity" Endpoint Query Parameters

2.3.4 "deleteAfAPNPRecordSetForUser" Endpoint Query Parameters

2.3.5 "getAfAPNPRecordForUserForActivity" Endpoint Query Parameters

2.3.6 "getAfAPNPRecordSetForUser" Endpoint Query Parameters

2.3.7 "getAllAfAPNPRecords" Endpoint Query Parameters

2.4 HTTP Code Handling

2.5 Service Discovery

3. Using the Endpoint Parameters

3.1 Pagination

3.2 Sorting

3.3 Filtering

3.4 Fields

4. Security Framework

4.1 Transport Security

4.2 Authorization

4.3 Scopes

4.3.1 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" Scope

4.3.2 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" Scope

4.3.3 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" Scope

5. Privacy Model Binding

5.1 Endpoint Confidentiality Classification

5.2 Data Model Confidentiality Classifications

6. UML to JSON Payload Mapping

6.1 Service Parameter Payload Properties UML/JSON Mapping

6.2 Service Parameter Payload Class UML/JSON Mapping

6.2.1 AccessForAllPNPRecordSet Service Parameter Payload Class Mapping

6.2.2 SingleAFAPNPRecord Service Parameter Payload Class Mapping

6.2.3 SingleUserAFAPNPRecord Service Parameter Payload Class Mapping

6.3 Payload Classes UML/JSON Mapping

6.3.1 AccessForAllPNP Payload Class Mapping

6.3.2 AccessForAllPNPRecord Payload Class Mapping

6.3.3 AccessModeRequired Payload Class Mapping

6.3.4 AdaptationDetailRequired Payload Class Mapping

6.3.5 AdaptationMediaRequired Payload Class Mapping

6.3.6 AdaptationTypeRequired Payload Class Mapping

6.3.7 AdditionalTestingTime Payload Class Mapping

6.3.8 Braille Payload Class Mapping

6.3.9 Calculator Payload Class Mapping

6.3.10 Environment Payload Class Mapping

6.3.11 FeatureSet Payload Class Mapping

6.3.12 FontFace Payload Class Mapping

6.3.13 LanguageMode Payload Class Mapping

6.3.14 LineReader Payload Class Mapping

6.3.15 LongDescription Payload Class Mapping

6.3.16 Magnification Payload Class Mapping

6.3.17 PersonSourcedId Payload Class Mapping

6.3.18 ReplacesAccessMode Payload Class Mapping

6.3.19 SelectMagnification Payload Class Mapping

6.3.20 Spoken Payload Class Mapping

6.3.21 TextAppearance Payload Class Mapping

6.3.22 UserAFAPNPRecord Payload Class Mapping

6.3.23 UserId Payload Class Mapping

6.3.24 UserRecord Payload Class Mapping

6.3.25 ZoomAmount Payload Class Mapping

6.3.26 imsx_CodeMinor Payload Class Mapping

6.3.27 imsx_CodeMinorField Payload Class Mapping

6.3.28 imsx_StatusInfo Payload Class Mapping

6.4 Enumerated Class UML/JSON Mapping

6.5 Enumerated List Class UML/JSON Mapping

6.6 Primitive Type UML/JSON Mapping

7. JSON Payloads

7.1 "addAfAPNPRecordForUserForActivity" Request Payload

7.2 "addAfAPNPRecordForUserForActivity" Response Payload

7.2.1 Response Payloads for the HTTP Codes (201, default, 401, 403, 404, 429, 500)

7.3 "createAfAPNPRecordForUserForActivity" Request Payload

7.4 "createAfAPNPRecordForUserForActivity" Response Payload

7.4.1 Response Payloads for the HTTP Codes (201, default, 401, 403, 404, 429, 500)

7.5 "deleteAfAPNPRecordForUserForActivity" Request Payload

7.6 "deleteAfAPNPRecordForUserForActivity" Response Payload

7.6.1 Response Payloads for the HTTP Codes (204, default, 401, 403, 404, 429, 500)

7.7 "deleteAfAPNPRecordSetForUser" Request Payload

7.8 "deleteAfAPNPRecordSetForUser" Response Payload

7.8.1 Response Payloads for the HTTP Codes (204, default, 401, 403, 404, 429, 500)

7.9 "getAfAPNPRecordForUserForActivity" Request Payload

7.10 "getAfAPNPRecordForUserForActivity" Response Payload

7.10.1 Response Payloads for the HTTP Codes (200)

7.10.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

7.11 "getAfAPNPRecordSetForUser" Request Payload

7.12 "getAfAPNPRecordSetForUser" Response Payload

7.12.1 Response Payloads for the HTTP Codes (200)

7.12.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

7.13 "getAllAfAPNPRecords" Request Payload

7.14 "getAllAfAPNPRecords" Response Payload

7.14.1 Response Payloads for the HTTP Codes (200)

7.14.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

8. OpenAPI File Description

8.1 General Information

8.2 Tags Information

8.3 Security Information

8.4 Paths Information

8.4.1 "/afapnprecords" Path

8.4.2 "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path

8.4.3 "/users/{userSourcedId}/afapnprecords" Path

8.5 Definitions Information

8.5.1 "AccessForAllPNPDType" Definition

8.5.2 "AccessForAllPNPRecordDType" Definition

8.5.3 "AccessForAllPNPRecordSetDType" Definition

8.5.4 "AccessModeRequiredDType" Definition

8.5.5 "AdaptationDetailRequiredDType" Definition

8.5.6 "AdaptationMediaRequiredDType" Definition

8.5.7 "AdaptationTypeRequiredDType" Definition

8.5.8 "AdditionalTestingTimeDType" Definition

8.5.9 "BrailleDType" Definition

8.5.10 "CalculatorDType" Definition

8.5.11 "EnvironmentDType" Definition

8.5.12 "FeatureSetDType" Definition

8.5.13 "FontFaceDType" Definition

8.5.14 "LanguageModeDType" Definition

8.5.15 "LineReaderDType" Definition

8.5.16 "LongDescriptionDType" Definition

8.5.17 "MagnificationDType" Definition

8.5.18 "PersonSourcedIdDType" Definition

8.5.19 "ReplacesAccessModeDType" Definition

8.5.20 "SelectMagnificationDType" Definition

8.5.21 "SingleAFAPNPRecordDType" Definition

8.5.22 "SingleUserAFAPNPRecordDType" Definition

8.5.23 "SpokenDType" Definition

8.5.24 "TextAppearanceDType" Definition

8.5.25 "UserAFAPNPRecordDType" Definition

8.5.26 "UserIdDType" Definition

8.5.27 "UserRecordDType" Definition

8.5.28 "ZoomAmountDType" Definition

8.5.29 "imsx_CodeMinorDType" Definition

8.5.30 "imsx_CodeMinorFieldDType" Definition

8.5.31 "imsx_StatusInfoDType" Definition

9. Extending and Profiling the Binding

9.1 Extending the Binding

9.1.1 Proprietary Operations

9.1.2 Proprietary Scopes

9.1.3 Proprietary Data Elements

9.1.4 Proprietary Vocabulary Terms

9.2 Profiling the Binding

References

Appendix A REST Binding Terms

A1 REST Endpoint Description Terms

A1.1 REST Endpoint Mapping Table Explanation

A1.2 Query Parameter Table Explanation

A1.3 Error Codes and Handling for each Endpoint Table Explanation

A1.4 Endpoint Confidentiality Classification Table Explanation

A1.5 Data Model Confidentiality Classification Table Explanation

A2 UML to JSON Mapping Description Terms

A2.1 Service Parameter Payload Properties UML/JSON Mapping Table Definition

A2.2 UML/JSON Payload Class Mapping Table Definition

A2.3 UML/JSON Enumerated and Enumerated List Class Mapping Table Definition

A2.4 UML/JSON Primitive Types Mapping Table Definition

A3 OpenAPI (v2 and v3) Description Terms

A3.1a OpenAPI(2) General Information Table Explanation

A3.1b OpenAPI(3) General Information Table Explanation

A3.2 OpenAPI Tags Table Explanation

A3.3 OpenAPI Security Table Explanation

A3.4 OpenAPI Paths Table Explanation

A3.5 OpenAPI Definitions Table Explanation

Appendix B OpenAPI File Listings

B1 Listing of the OpenAPI (JSON) Files

B1.1 OpenAPI 2.0 JSON Listing

B1.2 OpenAPI 3.0 JSON Listing

B2 Listing of the OpenAPI (YAML) Files

B2.1 OpenAPI 2.0 YAML Listing

B2.2 OpenAPI 3.0 YAML Listing

Appendix C JSON Schema Listings

C1 JSON Schema Listings for the Set of Payloads

C1.1a JSON Schema for the "addAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

C1.1b JSON Schema for the "addAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (201,default,401,403,404,429,500)

C1.2a JSON Schema for the "createAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

C1.2b JSON Schema for the "createAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (201,default,401,403,404,429,500)

C1.3a JSON Schema for the "deleteAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

C1.3b JSON Schema for the "deleteAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (204,default,401,403,404,429,500)

C1.4a JSON Schema for the "deleteAfAPNPRecordSetForUser" Operation Request Payload Validation.

C1.4b JSON Schema for the "deleteAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (204,default,401,403,404,429,500)

C1.5a JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

C1.5b JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (200)

C1.5c JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

C1.6a JSON Schema for the "getAfAPNPRecordSetForUser" Operation Request Payload Validation.

C1.6b JSON Schema for the "getAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (200)

C1.6c JSON Schema for the "getAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

C1.7a JSON Schema for the "getAllAfAPNPRecords" Operation Request Payload Validation.

C1.7b JSON Schema for the "getAllAfAPNPRecords" Operation Response Payload Validation for HTTP Codes (200)

C1.7c JSON Schema for the "getAllAfAPNPRecords" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

About this Document

List of Contributors

Revision History

toc | top

List of Figures

Figure 8.5.1 - OpenAPI JSON Schema description for the "AccessForAllPNPDType" Complex Type.

Figure 8.5.2 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordDType" Complex Type.

Figure 8.5.3 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordSetDType" Complex Type.

Figure 8.5.4 - OpenAPI JSON Schema description for the "AccessModeRequiredDType" Complex Type.

Figure 8.5.5 - OpenAPI JSON Schema description for the "AdaptationDetailRequiredDType" Complex Type.

Figure 8.5.6 - OpenAPI JSON Schema description for the "AdaptationMediaRequiredDType" Complex Type.

Figure 8.5.7 - OpenAPI JSON Schema description for the "AdaptationTypeRequiredDType" Complex Type.

Figure 8.5.8 - OpenAPI JSON Schema description for the "AdditionalTestingTimeDType" Complex Type.

Figure 8.5.9 - OpenAPI JSON Schema description for the "BrailleDType" Complex Type.

Figure 8.5.10 - OpenAPI JSON Schema description for the "CalculatorDType" Complex Type.

Figure 8.5.11 - OpenAPI JSON Schema description for the "EnvironmentDType" Complex Type.

Figure 8.5.12 - OpenAPI JSON Schema description for the "FeatureSetDType" Complex Type.

Figure 8.5.13 - OpenAPI JSON Schema description for the "FontFaceDType" Complex Type.

Figure 8.5.14 - OpenAPI JSON Schema description for the "LanguageModeDType" Complex Type.

Figure 8.5.15 - OpenAPI JSON Schema description for the "LineReaderDType" Complex Type.

Figure 8.5.16 - OpenAPI JSON Schema description for the "LongDescriptionDType" Complex Type.

Figure 8.5.17 - OpenAPI JSON Schema description for the "MagnificationDType" Complex Type.

Figure 8.5.18 - OpenAPI JSON Schema description for the "PersonSourcedIdDType" Complex Type.

Figure 8.5.19 - OpenAPI JSON Schema description for the "ReplacesAccessModeDType" Complex Type.

Figure 8.5.20 - OpenAPI JSON Schema description for the "SelectMagnificationDType" Complex Type.

Figure 8.5.21 - OpenAPI JSON Schema description for the "SingleAFAPNPRecordDType" Complex Type.

Figure 8.5.22 - OpenAPI JSON Schema description for the "SingleUserAFAPNPRecordDType" Complex Type.

Figure 8.5.23 - OpenAPI JSON Schema description for the "SpokenDType" Complex Type.

Figure 8.5.24 - OpenAPI JSON Schema description for the "TextAppearanceDType" Complex Type.

Figure 8.5.25 - OpenAPI JSON Schema description for the "UserAFAPNPRecordDType" Complex Type.

Figure 8.5.26 - OpenAPI JSON Schema description for the "UserIdDType" Complex Type.

Figure 8.5.27 - OpenAPI JSON Schema description for the "UserRecordDType" Complex Type.

Figure 8.5.28 - OpenAPI JSON Schema description for the "ZoomAmountDType" Complex Type.

Figure 8.5.29 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.

Figure 8.5.30 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.

Figure 8.5.31 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type.

toc | top

List of Tables

Table 2.1 - The Set of REST Endpoint URL-leaf Values.

Table 2.4 - The List of HTTP Codes and Handling for each Endpoint.

Table 4.3.1 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" Scope

Table 4.3.2 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" Scope

Table 4.3.3 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" Scope

Table 5.1 - The Set of REST/JSON Payload Confidentiality Classifications

Table 5.2 - The Set of Data Model Confidentiality Classifications

Table 6.1 - UML/JSON Mapping for the Service Parameters

Table 6.2.1 - UML/JSON Mapping for the "AccessForAllPNPRecordSet" Service Parameter Payload Class

Table 6.2.2 - UML/JSON Mapping for the "SingleAFAPNPRecord" Service Parameter Payload Class

Table 6.2.3 - UML/JSON Mapping for the "SingleUserAFAPNPRecord" Service Parameter Payload Class

Table 6.3.1 - Payload UML/JSON Mapping for the "AccessForAllPNP" Class

Table 6.3.2 - Payload UML/JSON Mapping for the "AccessForAllPNPRecord" Class

Table 6.3.3 - Payload UML/JSON Mapping for the "AccessModeRequired" Class

Table 6.3.4 - Payload UML/JSON Mapping for the "AdaptationDetailRequired" Class

Table 6.3.5 - Payload UML/JSON Mapping for the "AdaptationMediaRequired" Class

Table 6.3.6 - Payload UML/JSON Mapping for the "AdaptationTypeRequired" Class

Table 6.3.7 - Payload UML/JSON Mapping for the "AdditionalTestingTime" Class

Table 6.3.8 - Payload UML/JSON Mapping for the "Braille" Class

Table 6.3.9 - Payload UML/JSON Mapping for the "Calculator" Class

Table 6.3.10 - Payload UML/JSON Mapping for the "Environment" Class

Table 6.3.11 - Payload UML/JSON Mapping for the "FeatureSet" Class

Table 6.3.12 - Payload UML/JSON Mapping for the "FontFace" Class

Table 6.3.13 - Payload UML/JSON Mapping for the "LanguageMode" Class

Table 6.3.14 - Payload UML/JSON Mapping for the "LineReader" Class

Table 6.3.15 - Payload UML/JSON Mapping for the "LongDescription" Class

Table 6.3.16 - Payload UML/JSON Mapping for the "Magnification" Class

Table 6.3.17 - Payload UML/JSON Mapping for the "PersonSourcedId" Class

Table 6.3.18 - Payload UML/JSON Mapping for the "ReplacesAccessMode" Class

Table 6.3.19 - Payload UML/JSON Mapping for the "SelectMagnification" Class

Table 6.3.20 - Payload UML/JSON Mapping for the "Spoken" Class

Table 6.3.21 - Payload UML/JSON Mapping for the "TextAppearance" Class

Table 6.3.22 - Payload UML/JSON Mapping for the "UserAFAPNPRecord" Class

Table 6.3.23 - Payload UML/JSON Mapping for the "UserId" Class

Table 6.3.24 - Payload UML/JSON Mapping for the "UserRecord" Class

Table 6.3.25 - Payload UML/JSON Mapping for the "ZoomAmount" Class

Table 6.3.26 - Payload UML/JSON Mapping for the "imsx_CodeMinor" Class

Table 6.3.27 - Payload UML/JSON Mapping for the "imsx_CodeMinorField" Class

Table 6.3.28 - Payload UML/JSON Mapping for the "imsx_StatusInfo" Class

Table 6.4 - UML/JSON Mapping for the Enumerated Class Definitions

Table 6.6 - UML/JSON Mapping for the Primitive Type Definitions

Table 7.1.1 - Tabular representation of the JSON payload for the request message for a "addAfAPNPRecordForUserForActivity" operation.

Table 7.2.1 - Tabular representation of the JSON payload for "201, default, 401, 403, 404, 429, 500" response messages for a "addAfAPNPRecordForUserForActivity" operation.

Table 7.3.1 - Tabular representation of the JSON payload for the request message for a "createAfAPNPRecordForUserForActivity" operation.

Table 7.4.1 - Tabular representation of the JSON payload for "201, default, 401, 403, 404, 429, 500" response messages for a "createAfAPNPRecordForUserForActivity" operation.

Table 7.6.1 - Tabular representation of the JSON payload for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordForUserForActivity" operation.

Table 7.8.1 - Tabular representation of the JSON payload for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordSetForUser" operation.

Table 7.10.1 - Tabular representation of the JSON payload for "200" response messages for a "getAfAPNPRecordForUserForActivity" operation.

Table 7.10.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordForUserForActivity" operation.

Table 7.12.1 - Tabular representation of the JSON payload for "200" response messages for a "getAfAPNPRecordSetForUser" operation.

Table 7.12.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordSetForUser" operation.

Table 7.14.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllAfAPNPRecords" operation.

Table 7.14.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAllAfAPNPRecords" operation.

Table 8.1a - The Set of General Information Defined in the OpenAPI(2) Description.

Table 8.1b - The Set of General Information Defined in the OpenAPI(3) Description.

Table 8.2 - The Set of Tags Defined in the OpenAPI Description.

Table 8.3.1 - The Set of OAuth 2.0 Client Credentials Security Information Defined in the OpenAPI Description.

Table 8.4.1 - The Set of HTTP Verbs Permitted on the "/afapnprecords" Path.

Table 8.4.2 - The Set of HTTP Verbs Permitted on the "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path.

Table 8.4.3 - The Set of HTTP Verbs Permitted on the "/users/{userSourcedId}/afapnprecords" Path.

Table 8.5.1 - OpenAPI JSON Schema description for the "AccessForAllPNPDType" Complex Type.

Table 8.5.2 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordDType" Complex Type.

Table 8.5.3 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordSetDType" Complex Type.

Table 8.5.4 - OpenAPI JSON Schema description for the "AccessModeRequiredDType" Complex Type.

Table 8.5.5 - OpenAPI JSON Schema description for the "AdaptationDetailRequiredDType" Complex Type.

Table 8.5.6 - OpenAPI JSON Schema description for the "AdaptationMediaRequiredDType" Complex Type.

Table 8.5.7 - OpenAPI JSON Schema description for the "AdaptationTypeRequiredDType" Complex Type.

Table 8.5.8 - OpenAPI JSON Schema description for the "AdditionalTestingTimeDType" Complex Type.

Table 8.5.9 - OpenAPI JSON Schema description for the "BrailleDType" Complex Type.

Table 8.5.10 - OpenAPI JSON Schema description for the "CalculatorDType" Complex Type.

Table 8.5.11 - OpenAPI JSON Schema description for the "EnvironmentDType" Complex Type.

Table 8.5.12 - OpenAPI JSON Schema description for the "FeatureSetDType" Complex Type.

Table 8.5.13 - OpenAPI JSON Schema description for the "FontFaceDType" Complex Type.

Table 8.5.14 - OpenAPI JSON Schema description for the "LanguageModeDType" Complex Type.

Table 8.5.15 - OpenAPI JSON Schema description for the "LineReaderDType" Complex Type.

Table 8.5.16 - OpenAPI JSON Schema description for the "LongDescriptionDType" Complex Type.

Table 8.5.17 - OpenAPI JSON Schema description for the "MagnificationDType" Complex Type.

Table 8.5.18 - OpenAPI JSON Schema description for the "PersonSourcedIdDType" Complex Type.

Table 8.5.19 - OpenAPI JSON Schema description for the "ReplacesAccessModeDType" Complex Type.

Table 8.5.20 - OpenAPI JSON Schema description for the "SelectMagnificationDType" Complex Type.

Table 8.5.21 - OpenAPI JSON Schema description for the "SingleAFAPNPRecordDType" Complex Type.

Table 8.5.22 - OpenAPI JSON Schema description for the "SingleUserAFAPNPRecordDType" Complex Type.

Table 8.5.23 - OpenAPI JSON Schema description for the "SpokenDType" Complex Type.

Table 8.5.24 - OpenAPI JSON Schema description for the "TextAppearanceDType" Complex Type.

Table 8.5.25 - OpenAPI JSON Schema description for the "UserAFAPNPRecordDType" Complex Type.

Table 8.5.26 - OpenAPI JSON Schema description for the "UserIdDType" Complex Type.

Table 8.5.27 - OpenAPI JSON Schema description for the "UserRecordDType" Complex Type.

Table 8.5.28 - OpenAPI JSON Schema description for the "ZoomAmountDType" Complex Type.

Table 8.5.29 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.

Table 8.5.30 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.

Table 8.5.31 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type.

Table A1.1 The key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf

Table A1.2 The key to the descriptions of the data attribute/characteristic tables

Table A1.3 The key to the descriptions of the list of error codes and handling for each endpoint

Table A1.4 The key to the descriptions of the privacy classification of the exchanged payloads

Table A1.5 The key to the descriptions of the privacy classification of the individual attributes for each data model class

Table A3.1a The key to the tabular description of the OpenAPI(2) general information

Table A3.1b The key to the tabular description of the OpenAPI(3) general information

Table A3.2 The key to the tabular description of the OpenAPI tags information

Table A3.3 The key to the tabular description of the OpenAPI security information.

Table A3.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb

Table A3.5 The key to the tabular description of the OpenAPI definitions information

toc | top

List of Code Blocks

Code 7.1.1 - JSON payload example for the request message for a "addAfAPNPRecordForUserForActivity" operation.

Code 7.2.1 - JSON payload example for "201, default, 401, 403, 404, 429, 500" response messages for a "addAfAPNPRecordForUserForActivity" operation.

Code 7.3.1 - JSON payload example for the request message for a "createAfAPNPRecordForUserForActivity" operation.

Code 7.4.1 - JSON payload example for "201, default, 401, 403, 404, 429, 500" response messages for a "createAfAPNPRecordForUserForActivity" operation.

Code 7.6.1 - JSON payload example for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordForUserForActivity" operation.

Code 7.8.1 - JSON payload example for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordSetForUser" operation.

Code 7.10.1 - JSON payload example for "200" response messages for a "getAfAPNPRecordForUserForActivity" operation.

Code 7.10.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordForUserForActivity" operation.

Code 7.12.1 - JSON payload example for "200" response messages for a "getAfAPNPRecordSetForUser" operation.

Code 7.12.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordSetForUser" operation.

Code 7.14.1 - JSON payload example for "200" response messages for a "getAllAfAPNPRecords" operation.

Code 7.14.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAllAfAPNPRecords" operation.

toc | top

1. Introduction

1.1. Scope and Context

The Access For All Personal Needs and Preferences (AfA PNP) Service specification is intended to enable the exchange of information about the needs of learners with disabilities and of anyone in a disabling context. This service provides an API wrapper that surrounds the original AfAPNP data model [AFAPNP-OVW-30]. The purpose of the AfA PNP Specification is to provide a machine-readable method of stating user needs and preferences with respect to digitally based education or learning.

This REST/JSON service binding takes the AfA PNP Service Model [AFAPNP-SM-10] and produces an exchange API using REST-based semanitics with JSON payloads. The REST/JSON service binding is created using the 1EdTech Binding Auto-generation Tool-kit (I-BAT) [I-BAT, 06].

1.2. Conventions

All sections marked as non-normative, all authoring guidelines, diagrams (with the exception of the UML diagrams), examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119]. This means that from the perspective of conformance:

The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.

The SHOULD/SHOULD NOT/RECOMMENDED statements MUST NOT be used in any document, or section of a document, that is responsible for defining the information model and/or the associated bindings and/or conformance and certification.

1.3. Compatibility with AFA PNP Data Models

The AfA PNP Service 1.0 builds upon the AfA PNP Data Model 3.0 [AFAPNP-OVW-30]. 1EdTech has published two versions of the AfA PNP Data Model. The information models for AfA PNP v2.0 and v3.0 have many similarities but there are many differences. There is no backwards compatibility between versions 2 and 3.

The AFA PNP DAta Model 3.0 specification is designed to provide a very simple but extensible model and encourage early adoption and implementation. It was initially modelled using a semantic web approach then described using UML to support a particular class of implementations. The range of properties or attributes modelled and their representation is much simpler than in Access For All 2.0 in order to better support those properties identified as important by early adopters of previous versions. As such backwards compatibility with Access For All 2.0 has not been provided for as the team considered it important to establish a simpler way to represent the properties. A number of the properties in Access for All 3.0 have semantic equivalents in AfA2 that could be mapped to their AfA3 versions.

1.4. Structure of this Document

The structure of the rest of this document is:

2. REST Endpoints An explanation of the relationship between the logical service operations (as defined in the AfA PNP Service Model) and how these are realised as the corresponding set of REST endpoints (including the set of query parameters that are permitted);
3. Using the Endpoint Parameters A detailed explanation of how the permitted set of query parameters should be used to control the volume and type of information that will be supplied by the service provider;
4. Security Framework The underlying security framework within which this REST/JSON binding is designed to operate. This includes the details about authentication and how the payload integrity may be protected;
5. Privacy Model Binding Identification of the set of objects and their set of properties that MAY contain information that has privacy or privacy-related implications. Each propery is identified in terms of the type of privacy. This has implication on the JSON payloads being exchanged;
6. UML to JSON Payload Mapping The description of how the JSON payloads are derived from the equivalent UML data model definitions [AFAPNP-SM-10]. Each UML class and attribute is mapped to the equivalent JSON object and property;
7. JSON Payloads Examples of the set of JSON payloads that are sent by the consumer (the request) and returned by the service provider (response). These examples are focused on the expected structure of a request/response and do not include actual payloads;
8. OpenAPI File Description A detailed explanation of the structure of the OpenAPI files that are produced as part of the specification documentation. The associated JSON and YAML files are supplied in Appendix B
9. Extending and Profiling the Binding An explanation of how the service can be extended, using the permitted points of extension and/or profiled. Profiling is the process by which the specification is tailored to a specific set of market/domain requirements;
References The set of cited documents, normative and informative, that are used to support the technical details in this document;
Appendix A REST Binding Terms An overview of the model driven approach, the concepts and the terms used by 1EdTech to create the service model REST/JSON binding definitions (based upon a profile of UML) and the accompanying documentation (including this binding);
Appendix B OpenAPI File Listings The listings of the OpenAPI(JSON) and OpenAPI(YAML) files that have been created to define the REST/JSON binding in a machine-readable format i.e. conforming to the OpenAPI 2.0 specification;
Appendix C JSON Schema Listings The listings of the set of JSON Schema files (based upon IETF JSON Schema 2020-12) that have been created for the validation of the set of JSON payloads that are exchanged as part of this service.

1.5. Nomenclature

APIP Accessible Portable Item Protocol
AfA DRD Access For All Digital Resource Description
AfA PNP Access for All Personal Needs and Preferences
DT Derived Type
HTTP HyperText Transfer Protocol
I-BAT IMS Binding Autogeneration Toolkit
JSON JavaScript Object Notation
PT Primitive Type
REST Representational State Transfer
UML Unified Modelling Language
URL Uniform Resource Locator
VDEX Vocabulary Definition and Exchange
W3C Word Wide Web Consortium
XML Exchange Markup Language
XSD XML Schema Definition

toc | top

2. REST Endpoints

This Section is NORMATIVE.

2.1 Mapping of the Service Operations to the REST Endpoints

The mapping between the service operations and the REST Endpoint URL-leaf values are listed in Table 2.1. The syntax and semantics for this mapping are described in Appendix A1.1.

Table 2.1 - The Set of REST Endpoint URL-leaf Values.
Service Call REST Endpoint HTTP Verb
addAfAPNPRecordForUserForActivity /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords POST
createAfAPNPRecordForUserForActivity /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords PUT
deleteAfAPNPRecordForUserForActivity /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords DELETE
deleteAfAPNPRecordSetForUser /users/{userSourcedId}/afapnprecords DELETE
getAfAPNPRecordForUserForActivity /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords GET
getAfAPNPRecordSetForUser /users/{userSourcedId}/afapnprecords GET
getAllAfAPNPRecords /afapnprecords GET

2.2 API Root URL and Versioning

All of the paths MUST also contain, as the base of the path, excluding the host name, the string: "/ims/afapnp/v1p0".

2.3 Predefined Endpoint Query Parameters

The definition of the permitted set of query parameters are defined in the following Tables. The syntax and semantics for this Tables are described in Appendix A1.2.

2.3.1 "addAfAPNPRecordForUserForActivity" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.2 "createAfAPNPRecordForUserForActivity" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.3 "deleteAfAPNPRecordForUserForActivity" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.4 "deleteAfAPNPRecordSetForUser" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.5 "getAfAPNPRecordForUserForActivity" Endpoint Query Parameters

2.3.5.1 "fields" Query Parameter

The description of the "fields" query parameter is presented in Table 2.3.5.1

Table 2.3.5.1 - The definition of the "fields" query parameter for the "getAfAPNPRecordForUserForActivity" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.6 "getAfAPNPRecordSetForUser" Endpoint Query Parameters

2.3.6.1 "limit" Query Parameter

The description of the "limit" query parameter is presented in Table 2.3.6.1

Table 2.3.6.1 - The definition of the "limit" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.6.2 "offset" Query Parameter

The description of the "offset" query parameter is presented in Table 2.3.6.2

Table 2.3.6.2 - The definition of the "offset" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.6.3 "sort" Query Parameter

The description of the "sort" query parameter is presented in Table 2.3.6.3

Table 2.3.6.3 - The definition of the "sort" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.6.4 "orderBy" Query Parameter

The description of the "orderBy" query parameter is presented in Table 2.3.6.4

Table 2.3.6.4 - The definition of the "orderBy" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.6.5 "filter" Query Parameter

The description of the "filter" query parameter is presented in Table 2.3.6.5

Table 2.3.6.5 - The definition of the "filter" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.6.6 "fields" Query Parameter

The description of the "fields" query parameter is presented in Table 2.3.6.6

Table 2.3.6.6 - The definition of the "fields" query parameter for the "getAfAPNPRecordSetForUser" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.7 "getAllAfAPNPRecords" Endpoint Query Parameters

2.3.7.1 "limit" Query Parameter

The description of the "limit" query parameter is presented in Table 2.3.7.1

Table 2.3.7.1 - The definition of the "limit" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.7.2 "offset" Query Parameter

The description of the "offset" query parameter is presented in Table 2.3.7.2

Table 2.3.7.2 - The definition of the "offset" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.7.3 "sort" Query Parameter

The description of the "sort" query parameter is presented in Table 2.3.7.3

Table 2.3.7.3 - The definition of the "sort" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.7.4 "orderBy" Query Parameter

The description of the "orderBy" query parameter is presented in Table 2.3.7.4

Table 2.3.7.4 - The definition of the "orderBy" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.7.5 "filter" Query Parameter

The description of the "filter" query parameter is presented in Table 2.3.7.5

Table 2.3.7.5 - The definition of the "filter" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.7.6 "fields" Query Parameter

The description of the "fields" query parameter is presented in Table 2.3.7.6

Table 2.3.7.6 - The definition of the "fields" query parameter for the "getAllAfAPNPRecords" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.4 HTTP Code Handling

A service provider will either return a data payload or a payload that indicates the cause of the failure. The list of HTTP Codes and handling for each endpoint is shown in Table 2.4. The syntax and semantics for this tabular description are described in Appendix A1.3.

Table 2.4 - The List of HTTP Codes and Handling for each Endpoint.
REST Endpoint HTTP Verb HTTP Codes and Handling
/afapnprecords GET
  • 200 - the requested read has been fully serviced and all of the required data returned. The payload is defined by the structure AccessForAllPNPRecordSetDType.
  • 400 - either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords GET
  • 200 - the requested read has been fully serviced and all of the required data returned. The payload is defined by the structure SingleAFAPNPRecordDType.
  • 400 - either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/afapnprecords GET
  • 200 - the requested read has been fully serviced and all of the required data returned. The payload is defined by the structure AccessForAllPNPRecordSetDType.
  • 400 - either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/afapnprecords DELETE
  • 204 - the object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - the supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords DELETE
  • 204 - the object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - the supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords PUT
  • 201 - the object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords POST
  • 201 - the object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'. The payload is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 403 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 429 - 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'. The payload is defined by the structure imsx_StatusInfoDType.
  • 500 - 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'. The payload is defined by the structure imsx_StatusInfoDType.

2.5 Service Discovery

A Service Provider MUST provide a localized version of the OpenAPI file (version 3 JSON file format) to enable service discovery [Security, 21].

This file MUST be located at: "...hostname.../ims/afapnp/v1p0/discovery/".

The OpenAPI file MUST have the name: "imsafapnpv1p0_openapi3_v1p0p0.json".

Therefore the full URL for this service discovery file is: ...hostname.../ims/afapnp/v1p0/discovery/imsafapnpv1p0_openapi3_v1p0p0.json

toc | top

3. Using the Endpoint Parameters

3.1. Pagination

For requests of collections i.e. the response for the 'getAllAfAPNPRecords()' call, there is a danger of data overload. To avoid this, implementations should adopt a pagination mechanism. Pagination is controlled via two parameters that are appended to the request:

An example of a request to return the first 10 resources in a collection of AfAPNP Records:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=10

An example of a request to return the second 10 users in a collection of users:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=10&offset=10

It is RECOMMENDED that implementations pass the total resource count in collection back to the requester. This MUST be provided in the custom HTTP header: X-Total-Count.

It is RECOMMENDED that implementers pass back next, previous, first and last links in the HTTP Link Header.

Consider the requests for the example where 503 resources exist in the collection. The pagination is in units of 10.

    Link:

    <https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=10&offset=20>; rel="next",
    <https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=3&offset=500>; rel="last",
    <https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=10&offset=0>; rel="first",
    <https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?limit=10&offset=0>; rel="prev"

3.2. Sorting

It should be possible for collections, i.e. the response for the 'getAllAfAPNPRecords()' call etc. to be returned in a sorted order. It should be possible to sort the collection based on any single data element in the core description of the resource. Sort requests MUST make use of the reserved word "sort" (?sort= data_field), and optionally the reserved word orderBy for which:

An example of a request to ask for a list of users sorted into ascending lastName order:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?sort=personSourcedId&orderBy=asc

Sorting should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.

If the consumer requests that the data is to be sorted by a non-existent field, data MAY be returned in the service provider's default sort order or an error response MAY be returned.

When sorting/ordering is requested on a property that is an array, the first value in the array is used as the basis of the sorting/ordering.

To sort/order on the properties of nested objects, (for example, with metadata properties), a dot-notation approach MUST be used. The format for this is:

    ?sort=<Nested_Object>.<Property>

3.3. Filtering

For the calls that request collections e.g. 'getAllAfAPNPRecords()' call, it should be possible to filter collections for elements matching a certain criteria. It should be possible to filter collections based on any data element in the core description of the resource.Filter requests MUST take the form:

    ?filter=<data_field><predicate><value>

or

    ?filter=<data_field><predicate><value><logical><data_field><predicate><value>

The data fields that can be used are those present in the class definition being filtered. So for example in 'afapnprecords', it MUST be possible to filter on: 'access-mode-required', 'adaptation-mode-required', 'at-interoperable', etc.

Predicates MUST be chosen from those listed below:

Values MUST be enclosed within single quotes and they MUST be handled as case insensitive. When the response is returned it is the receiving system that should consider whether or not case-sensitivity is important.

The <logical> parameters allow more complex queries to be created. For version 1.0, it is RECOMMENDED that logical operations are limited to " AND " and " OR " (note the surrounding white space at each side) and that there is only one such operator used in any filter i.e. a single 'AND' or a single 'OR' in the filter. A single white space must occur before and after the parameter.

To query on the properties of nested objects, (for example, with 'access-mode-required' properties), a dot-notation approach MUST be used. The format for this is:

    ?filter=<Nested_Object>.<Property>

Note then when querying on metadata, the property is loosely typed. An example or a request to find users with a 'at-interoperable' of 'True' is:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?filter=at-interoperable='True'

URL encoded as:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?filter=at-interoperable%3D%27True%27

Filter queries MUST be URL encoded.

An example of a complex query for all users with at-interoperable='True' AND glossary-on-screen='active' is:

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?filter=at-interoperable%3D%27True%27%20AND%20glossary-on-screen%3D%27active%27

When filtering on objects that are arrays the application of the filter depends on the nature of the comparison. So in the case of filtering on the 'hazard-avoidance' field when the value of the field is 'hazard1,hazard2,hazard3' the following filters would return:

This means filtering using the '=' has 'AND' semantics and the '~' has 'OR' semantics. Filtering rules should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.

If the consumer requests that data be filtered by a non-existent field, NO data is returned and the server must provide the associated transaction status code information of:

3.4. Fields

For the read collection calls, such as 'getAllAfAPNPRecords()', it should be possible for requesters to select the range of fields to be returned. By default, all mandatory and optional fields from the core description of the AFA PNP Record MUST be returned. If any fields are specified in the request then the implementation should return those fields AND ONLY those fields i.e. the multiplicity rules for an element are overridden. Any field or fields from the Data Model MAY be requested.

Field selection request MUST make use of the reserved word 'fields'. The value of fields is a comma delimited list of the fields to return. An example of a request message to ask for a list of Users returning only the 'access-mode-required' and 'language-of-adaptation':

    GET https://www.imsglobal.org/ims/afapnp/v1p0/afapnprecords?fields=access-mode-required,language-of-adaptation

If the consumer requests that data be selected using non-existent field, ALL data for the record is returned. If the consumer requests that data be selected using a blank field the request will be treated as an invalid request. The server must provide the associated transaction status code information of:

toc | top

4. Security Framework

4.1. Transport Security

As the service will be exposing personal data related to students and their grades, it is important that only authorized users have access to that data. Further, data exchanges should be encrypted to ensure that packet sniffing cannot be used to read the data in transit.

All Requests and Responses MUST be sent using Transport Layer Security (TLS). Exchange of the signed certificates for endpoints between clients and servers is beyond the scope of this specification. Implementers of clients and servers are advised to look at the various 3rd party certificate signing services in order to obtain signed certificates.

Support for TLS 1.2 and/or TLS 1.3 is REQUIRED and SSL MUST NOT be used.

4.2. Authorization

The use of OAuth 2.0 Client Credentials with the Bearer Token obtained using the mechanism described in [RFC 6749] (Section 4.4) is REQUIRED. Details of this are given in the 1EdTech Security Framework [Security, 21].

Authorization will use the OAuth 2.0 Client Credentials Grant mechanism. In this mechanism the client can request an access token using only its client credentials (using the consumer key and secret information) when the client is requesting access to the protected resources under its control, or those of another resource owner that have been previously arranged with the authorization server. In this approach the client issues a client authentication request and receives in response an access token. Issuing of an access token is defined in Section 5 of [RFC 6749].

The request for an access token, including three scopes (scopename1, scopename2 and scopenamex) takes the form of (this uses TLS):

        POST /token HTTP/1.1
        Host: server.example.com
        Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
        Content-Type: application/x-www-form-urlencoded

        grant_type=client_credentials&scope=scopename1%20scopename2%20scopenamex
        

The inclusion of scopes is REQUIRED and the set of scopes available for this service are defined in the following subsection. The authorization encoding is produced using the consumer key and secret. Note that the request for an access token MAY use a HTTP GET request.

The authorization encoding is produced using the consumer key and secret. Success results in the granting of the access token with a response of:

        HTTP/1.1 200 OK
        Content-Type: application/json;charset=UTF-8
        Cache-Control: no-store
        Pragma: no-cache

        {
            "access_token" : "2YotnFZFEjr1zCsicMWpAA",
            "token_type" : "bearer",
            "expires_in" : 3600,
            "scope" : "scopename1 scopename2 scopenamex"
        }
        

The recommended default value for the "expires_in" is 3600s. The authorization server MUST provide the scopes which are made available (either all or a subset of the scopes supplied in the request).

The client utilizes the access token to authenticate with the resource using the HTTP "Authorization" request header field [RFC 2617] with an authentication scheme defined by the specification of the access token type used, such as [RFC 6750]. An example of the use of the bearer token is:

        GET /resource/1 HTTP/1.1
        Host: provider.example.com
        Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
        

NOTE: This exchange assumes that TLS is used to secure the link.

4.3. Scopes

The set of scopes available in this service are listed in the following Tables.

4.3.1 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" Scope

The scope that MUST be used for LTI enabled access to the AfA PNP service. The set of service operations covered by this scope are listed in Table 4.3.1.

Table 4.3.1 Service Operations for the "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" Scope.
Operation HTTP Verb Endpoint
getAfAPNPRecordForUserForActivity GET /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords

4.3.2 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" Scope

To enable access to ALL of the READ endpoints for the AfA PNP service. The set of service operations covered by this scope are listed in Table 4.3.2.

Table 4.3.2 Service Operations for the "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" Scope.
Operation HTTP Verb Endpoint
getAfAPNPRecordForUserForActivity GET /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords
getAfAPNPRecordSetForUser GET /users/{userSourcedId}/afapnprecords
getAllAfAPNPRecords GET /afapnprecords

4.3.3 "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" Scope

To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service. The set of service operations covered by this scope are listed in Table 4.3.3.

Table 4.3.3 Service Operations for the "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" Scope.
Operation HTTP Verb Endpoint
addAfAPNPRecordForUserForActivity POST /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords
createAfAPNPRecordForUserForActivity PUT /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords
deleteAfAPNPRecordForUserForActivity DELETE /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords
deleteAfAPNPRecordSetForUser DELETE /users/{userSourcedId}/afapnprecords

toc | top

5. Privacy Model Binding

This Section is NORMATIVE.

5.1 Endpoint Confidentiality Classification

The mapping between the service operations and the confidentiality classifications for each request/response REST/JSON payload are listed in Table 5.1. The syntax and semantics for these confidentiality classifications are described in Appendix A1.4. All of the corresponding concepts and methods for these privacy annotations are defined in the 1EdTech Privacy Framework [Privacy, 23].

Table 5.1 - The Set of REST/JSON Payload Confidentiality Classifications.
Service Call HTTP Verb Request Message Response Message
Parameters Classification Parameters Classification
addAfAPNPRecordForUserForActivity POST
  • userSourcedId : PersonSourcedId
  • activitySourcedId : ActivitySourcedId
  • afapnpRecord : SingleAFAPNPRecord
"undefinedverbtype" None. "undefinedverbtype"
createAfAPNPRecordForUserForActivity PUT
  • userSourcedId : PersonSourcedId
  • activitySourcedId : ActivitySourcedId
  • afapnpUserRecord : SingleUserAFAPNPRecord
"undefinedverbtype" None. "undefinedverbtype"
deleteAfAPNPRecordForUserForActivity DELETE
  • userSourcedId : PersonSourcedId
  • activitySourcedId : ActivitySourcedId
"undefinedverbtype" None. "undefinedverbtype"
deleteAfAPNPRecordSetForUser DELETE
  • userSourcedId : PersonSourcedId
"undefinedverbtype" None. "undefinedverbtype"
getAfAPNPRecordForUserForActivity GET
  • userSourcedId : PersonSourcedId
  • activitySourcedId : ActivitySourcedId
"unrestricted"
  • afapnpRecord : SingleAFAPNPRecord
"veryrestricted"
getAfAPNPRecordSetForUser GET
  • userSourcedId : PersonSourcedId
"unrestricted"
  • afapnpRecordSet : AccessForAllPNPRecordSet
"veryrestricted"
getAllAfAPNPRecords GET None. "unrestricted"
  • afapnpRecordSet : AccessForAllPNPRecordSet
"veryrestricted"

5.2 Data Model Confidentiality Classifications

The mapping between the data model classes and the confidentiality classifications are listed in Table 5.2. The syntax and semantics for these confidentiality classifications are described in Appendix A1.5. All of the corresponding concepts and methods for these privacy annotations are defined in the 1EdTech Privacy Framework [Privacy, 23].

Table 5.2 - The Set of Data Model Confidentiality Classifications.
Class Classifications
AccessForAllPNPDType Privacy Attribute Set:
  • "access-mode-required"
  • "adaptation-type-required"
  • "at-interoperable"
  • "educational-complexity-of-adaptation"
  • "hazard-avoidance"
  • "input-requirements"
  • "language-of-adaptation"
  • "language-of-interface"
  • "adaptation-detail-required"
  • "adaptation-media-required"
  • "educational-level-of-adaptation"
  • "linguistic-guidance"
  • "keyword-emphasis"
  • "keyword-translation"
  • "simplified-language-portions"
  • "simplified-graphics"
  • "item-translation"
  • "sign-language"
  • "encouragement"
  • "additional-testing-time"
  • "line-reader"
  • "magnification"
  • "spoken"
  • "tactile"
  • "braille"
  • "answer-masking"
  • "keyboard-directions"
  • "additional-directions"
  • "long-description"
  • "captions"
  • "environment"
  • "transcript"
  • "alternative-text"
  • "audio-description"
  • "high-contrast"
  • "layout-single-column"
  • "text-appearance"
  • "calculator-on-screen"
  • "dictionary-on-screen"
  • "glossary-on-screen"
  • "thesaurus-on-screen"
  • "homophone-checker-on-screen"
  • "note-taking-on-screen"
  • "visual-organizer-on-screen"
  • "outliner-on-screen"
  • "peer-interaction-on-screen"
  • "spell-checker-on-screen"
  • "activate-at-initialization-set"
  • "activate-as-option-set"
  • "prohibit-set"
  • "extensions"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal):
  • "extensions"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-mode-required"
  • "adaptation-type-required"
  • "at-interoperable"
  • "educational-complexity-of-adaptation"
  • "hazard-avoidance"
  • "input-requirements"
  • "language-of-adaptation"
  • "language-of-interface"
  • "adaptation-detail-required"
  • "adaptation-media-required"
  • "educational-level-of-adaptation"
  • "linguistic-guidance"
  • "keyword-emphasis"
  • "keyword-translation"
  • "simplified-language-portions"
  • "simplified-graphics"
  • "item-translation"
  • "sign-language"
  • "encouragement"
  • "additional-testing-time"
  • "line-reader"
  • "magnification"
  • "spoken"
  • "tactile"
  • "braille"
  • "answer-masking"
  • "keyboard-directions"
  • "additional-directions"
  • "long-description"
  • "captions"
  • "environment"
  • "transcript"
  • "alternative-text"
  • "audio-description"
  • "high-contrast"
  • "layout-single-column"
  • "text-appearance"
  • "calculator-on-screen"
  • "dictionary-on-screen"
  • "glossary-on-screen"
  • "thesaurus-on-screen"
  • "homophone-checker-on-screen"
  • "note-taking-on-screen"
  • "visual-organizer-on-screen"
  • "outliner-on-screen"
  • "peer-interaction-on-screen"
  • "spell-checker-on-screen"
  • "activate-at-initialization-set"
  • "activate-as-option-set"
  • "prohibit-set"
AccessForAllPNPRecordDType Privacy Attribute Set:
  • "personSourcedId"
  • "activitySourcedId"
  • "access-for-all-pnp"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal):
  • "personSourcedId"
  • "activitySourcedId"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-for-all-pnp"
AccessForAllPNPRecordSetDType Privacy Attribute Set:
  • "access-for-all-pnp-record"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-for-all-pnp-record"
AccessModeRequiredDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
AdaptationDetailRequiredDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
AdaptationMediaRequiredDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
AdaptationTypeRequiredDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
AdditionalTestingTimeDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
BrailleDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
EnvironmentDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
FeatureSetDType Privacy Attribute Set:
  • "extensions"
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal):
  • "extensions"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
FontFaceDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
LanguageModeDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
LineReaderDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
LongDescriptionDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
MagnificationDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
ReplacesAccessModeDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
SelectMagnificationDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
SingleAFAPNPRecordDType Privacy Attribute Set:
  • "access-for-all-pnp-record"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-for-all-pnp-record"
SingleUserAFAPNPRecordDType Privacy Attribute Set:
  • "access-for-all-pnp-record"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-for-all-pnp-record"
SpokenDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
TextAppearanceDType Privacy Attribute Set:
  • "extensions"
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal):
  • "extensions"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
UserAFAPNPRecordDType Privacy Attribute Set:
  • "personSourcedId"
  • "user"
  • "access-for-all-pnp"
Confidentiality Classification: "veryrestricted"
Attributes (Confidentiality-Normal):
  • "personSourcedId"
  • "user"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted):
  • "access-for-all-pnp"
UserIdDType Privacy Attribute Set:
  • "type"
  • "identifier"
Confidentiality Classification: "normal"
Attributes (Confidentiality-Normal):
  • "type"
  • "identifier"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
UserRecordDType Privacy Attribute Set:
  • "userIds"
  • "extensions"
Confidentiality Classification: "normal"
Attributes (Confidentiality-Normal):
  • "userIds"
  • "extensions"
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
imsx_CodeMinorDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
imsx_CodeMinorFieldDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None
imsx_StatusInfoDType Privacy Attribute Set: None
Confidentiality Classification: "unrestricted"
Attributes (Confidentiality-Normal): None
Attributes (Confidentiality-Restricted): None
Attributes (Confidentiality-VeryRestricted): None

toc | top

6. UML to JSON Payload Mapping

This Section is NOT NORMATIVE.

6.1 Service Parameter Payload Properties UML/JSON Mapping

The UML/JSON Mapping for the Service Parameters (excluding those service parameters passed as query parameters on the endpoint URL) to the JSON Payload Properties is given in Table 6.1. The syntax and semantics for this representation is described in Appendix A2.1.

Table 6.1 UML/JSON Mapping for the Service Parameters.
Operation Name Parameter Name UML Class JSON Name JSON Type JSON Schema Data Type
addAfAPNPRecordForUserForActivity access-for-all-pnp-record SingleAFAPNPRecord access-for-all-pnp-record Object SingleAFAPNPRecordDType
createAfAPNPRecordForUserForActivity access-for-all-pnp-record SingleUserAFAPNPRecord access-for-all-pnp-record Object SingleUserAFAPNPRecordDType
getAfAPNPRecordForUserForActivity access-for-all-pnp-record SingleAFAPNPRecord access-for-all-pnp-record Object SingleAFAPNPRecordDType
getAfAPNPRecordSetForUser access-for-all-pnp-record AccessForAllPNPRecordSet access-for-all-pnp-record Array of Objects AccessForAllPNPRecordSetDType
getAllAfAPNPRecords access-for-all-pnp-record AccessForAllPNPRecordSet access-for-all-pnp-record Array of Objects AccessForAllPNPRecordSetDType

6.2 Service Parameter Payload Class UML/JSON Mapping

The syntax and semantics for the Root Class UML/JSON mapping representations is described in Appendix A2.2.

6.2.1 AccessForAllPNPRecordSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "AccessForAllPNPRecordSet" Service Parameter Payload Class is given in Table 6.2.1.

Table 6.2.1 UML/JSON Mapping for the "AccessForAllPNPRecordSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AccessForAllPNPRecordSet Payload Parameter Container [ Sequence ] - N/A - AccessForAllPNPRecordSetDType Object
  • access-for-all-pnp-record
Attribute AccessForAllPNPRecord [0.. *] access-for-all-pnp-record Array of Properties

6.2.2 SingleAFAPNPRecord Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleAFAPNPRecord" Service Parameter Payload Class is given in Table 6.2.2.

Table 6.2.2 UML/JSON Mapping for the "SingleAFAPNPRecord" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleAFAPNPRecord Payload Parameter Container [ Sequence ] - N/A - SingleAFAPNPRecordDType Object
  • access-for-all-pnp-record
Attribute AccessForAllPNPRecord [1] access-for-all-pnp-record Property

6.2.3 SingleUserAFAPNPRecord Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleUserAFAPNPRecord" Service Parameter Payload Class is given in Table 6.2.3.

Table 6.2.3 UML/JSON Mapping for the "SingleUserAFAPNPRecord" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleUserAFAPNPRecord Payload Parameter Container [ Sequence ] - N/A - SingleUserAFAPNPRecordDType Object
  • access-for-all-pnp-record
Attribute UserAFAPNPRecord [1] access-for-all-pnp-record Property

6.3 Payload Classes UML/JSON Mapping

The syntax and semantics for the Data Class UML/JSON mapping representations is described in Appendix A2.2.

6.3.1 AccessForAllPNP Payload Class Mapping

The Payload UML/JSON Mapping for the "AccessForAllPNP" Class is given in Table 6.3.1.

Table 6.3.1 Payload UML/JSON Mapping for the "AccessForAllPNP" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AccessForAllPNP Core Container [ Unordered ] - N/A - AccessForAllPNPDType Object
  • access-mode-required
Attribute AccessModeRequired [0.. *] access-mode-required Array of Properties
  • adaptation-type-required
Attribute AdaptationTypeRequired [0.. *] adaptation-type-required Array of Properties
  • at-interoperable
Attribute PT: Boolean [0..1] at-interoperable Property
  • educational-complexity-of-adaptation
Attribute [ Union (EducationalComplexityValueExtEnum) ] [0..1] educational-complexity-of-adaptation Property
  • hazard-avoidance
Attribute [ Union (HazardValueExtEnum) ] [0.. *] hazard-avoidance Array of Properties
  • input-requirements
Attribute [ Union (ControlFlexibilityValueExtEnum) ] [0..1] input-requirements Property
  • language-of-adaptation
Attribute LanguageMode [0.. *] language-of-adaptation Array of Properties
  • language-of-interface
Attribute LanguageMode [0.. *] language-of-interface Array of Properties
  • adaptation-detail-required
Attribute AdaptationDetailRequired [0.. *] adaptation-detail-required Array of Properties
  • adaptation-media-required
Attribute AdaptationMediaRequired [0.. *] adaptation-media-required Array of Properties
  • educational-level-of-adaptation
Attribute PT: NormalizedString [0.. *] educational-level-of-adaptation Array of Properties
  • linguistic-guidance
Attribute ReplacesAccessMode [0..1] linguistic-guidance Property
  • keyword-emphasis
Attribute ReplacesAccessMode [0..1] keyword-emphasis Property
  • keyword-translation
Attribute LanguageMode [0..1] keyword-translation Property
  • simplified-language-portions
Attribute ReplacesAccessMode [0..1] simplified-language-portions Property
  • simplified-graphics
Attribute ReplacesAccessMode [0..1] simplified-graphics Property
  • item-translation
Attribute LanguageMode [0..1] item-translation Property
  • sign-language
Attribute LanguageMode [0..1] sign-language Property
  • encouragement
Attribute ReplacesAccessMode [0..1] encouragement Property
  • additional-testing-time
Attribute AdditionalTestingTime [0..1] additional-testing-time Property
  • line-reader
Attribute LineReader [0..1] line-reader Property
  • magnification
Attribute Magnification [0..1] magnification Property
  • spoken
Attribute Spoken [0..1] spoken Property
  • tactile
Attribute ReplacesAccessMode [0..1] tactile Property
  • braille
Attribute Braille [0..1] braille Property
  • answer-masking
Attribute ReplacesAccessMode [0..1] answer-masking Property
  • keyboard-directions
Attribute ReplacesAccessMode [0..1] keyboard-directions Property
  • additional-directions
Attribute ReplacesAccessMode [0..1] additional-directions Property
  • long-description
Attribute LongDescription [0..1] long-description Property
  • captions
Attribute ReplacesAccessMode [0..1] captions Property
  • environment
Attribute Environment [0..1] environment Property
  • transcript
Attribute ReplacesAccessMode [0..1] transcript Property
  • alternative-text
Attribute ReplacesAccessMode [0..1] alternative-text Property
  • audio-description
Attribute ReplacesAccessMode [0..1] audio-description Property
  • high-contrast
Attribute ReplacesAccessMode [0..1] high-contrast Property
  • layout-single-column
Attribute ReplacesAccessMode [0..1] layout-single-column Property
  • text-appearance
Attribute TextAppearance [0..1] text-appearance Property
  • calculator-on-screen
Attribute DT: Calculator (PT: Empty) [0..1] calculator-on-screen Property
  • dictionary-on-screen
Attribute PT: Empty [0..1] dictionary-on-screen Property
  • glossary-on-screen
Attribute PT: Empty [0..1] glossary-on-screen Property
  • thesaurus-on-screen
Attribute PT: Empty [0..1] thesaurus-on-screen Property
  • homophone-checker-on-screen
Attribute PT: Empty [0..1] homophone-checker-on-screen Property
  • note-taking-on-screen
Attribute PT: Empty [0..1] note-taking-on-screen Property
  • visual-organizer-on-screen
Attribute PT: Empty [0..1] visual-organizer-on-screen Property
  • outliner-on-screen
Attribute PT: Empty [0..1] outliner-on-screen Property
  • peer-interaction-on-screen
Attribute PT: Empty [0..1] peer-interaction-on-screen Property
  • spell-checker-on-screen
Attribute PT: Empty [0..1] spell-checker-on-screen Property
  • activate-at-initialization-set
Attribute FeatureSet [0..1] activate-at-initialization-set Property
  • activate-as-option-set
Attribute FeatureSet [0..1] activate-as-option-set Property
  • prohibit-set
Attribute FeatureSet [0..1] prohibit-set Property
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

6.3.2 AccessForAllPNPRecord Payload Class Mapping

The Payload UML/JSON Mapping for the "AccessForAllPNPRecord" Class is given in Table 6.3.2.

Table 6.3.2 Payload UML/JSON Mapping for the "AccessForAllPNPRecord" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AccessForAllPNPRecord Core Container [ Sequence ] - N/A - AccessForAllPNPRecordDType Object
  • personSourcedId
Attribute DT: PersonSourcedId (PT: NormalizedString) [1] personSourcedId Property
  • activitySourcedId
Attribute DT: ActivitySourcedId (PT: NormalizedString) [1] activitySourcedId Property
  • access-for-all-pnp
Attribute AccessForAllPNP [1] access-for-all-pnp Property

6.3.3 AccessModeRequired Payload Class Mapping

The Payload UML/JSON Mapping for the "AccessModeRequired" Class is given in Table 6.3.3.

Table 6.3.3 Payload UML/JSON Mapping for the "AccessModeRequired" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AccessModeRequired Core Container [ Sequence ] - N/A - AccessModeRequiredDType Object
  • existing-access-mode
Attribute [ Union (AccessModeValue) ] [1] existing-access-mode Property
  • adaptation-request
Attribute [ Union (AccessModeValue) ] [1] adaptation-request Property

6.3.4 AdaptationDetailRequired Payload Class Mapping

The Payload UML/JSON Mapping for the "AdaptationDetailRequired" Class is given in Table 6.3.4.

Table 6.3.4 Payload UML/JSON Mapping for the "AdaptationDetailRequired" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AdaptationDetailRequired Core Container [ Sequence ] - N/A - AdaptationDetailRequiredDType Object
  • existing-access-mode
Attribute [ Union (AccessModeValue) ] [1] existing-access-mode Property
  • adaptation-request
Attribute [ Union (AdaptationDetailValue) ] [1] adaptation-request Property

6.3.5 AdaptationMediaRequired Payload Class Mapping

The Payload UML/JSON Mapping for the "AdaptationMediaRequired" Class is given in Table 6.3.5.

Table 6.3.5 Payload UML/JSON Mapping for the "AdaptationMediaRequired" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AdaptationMediaRequired Core Container [ Sequence ] - N/A - AdaptationMediaRequiredDType Object
  • existing-access-mode
Attribute [ Union (AccessModeValue) ] [1] existing-access-mode Property
  • adaptation-request
Attribute [ Union (AdaptationMediaTypeValue) ] [1] adaptation-request Property

6.3.6 AdaptationTypeRequired Payload Class Mapping

The Payload UML/JSON Mapping for the "AdaptationTypeRequired" Class is given in Table 6.3.6.

Table 6.3.6 Payload UML/JSON Mapping for the "AdaptationTypeRequired" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AdaptationTypeRequired Core Container [ Sequence ] - N/A - AdaptationTypeRequiredDType Object
  • existing-access-mode
Attribute [ Union (AccessModeValue) ] [1] existing-access-mode Property
  • adaptation-request
Attribute [ Union (AdaptationTypeValue) ] [1] adaptation-request Property

6.3.7 AdditionalTestingTime Payload Class Mapping

The Payload UML/JSON Mapping for the "AdditionalTestingTime" Class is given in Table 6.3.7.

Table 6.3.7 Payload UML/JSON Mapping for the "AdditionalTestingTime" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AdditionalTestingTime Core Container [ Selection ] AND Inherits [ ReplacesAccessMode ] - N/A - AdditionalTestingTimeDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • time-multiplier
Attribute PT: Float XOR [1] time-multiplier Property
  • fixed-minutes
Attribute PT: Integer XOR [1] fixed-minutes Property
  • unlimited
Attribute PT: Empty XOR [1] unlimited Property

6.3.8 Braille Payload Class Mapping

The Payload UML/JSON Mapping for the "Braille" Class is given in Table 6.3.8.

Table 6.3.8 Payload UML/JSON Mapping for the "Braille" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Braille Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - BrailleDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • language
Characteristic PT: Language [0..1] language Property
  • delivery-mode
Attribute [ Enumeration (DeliveryModeEnum) ] [0..1] delivery-mode Property
  • grade
Attribute [ Enumeration (GradeEnum) ] [0..1] grade Property
  • braille-type
Attribute [ Union (BrailleType) ] [0..1] braille-type Property
  • math-type
Attribute [ Union (MathType) ] [0..1] math-type Property

6.3.9 Calculator Payload Class Mapping

The Payload UML/JSON Mapping for the "Calculator" Class is given in Table 6.3.9.

Table 6.3.9 Payload UML/JSON Mapping for the "Calculator" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Calculator Core Container [ DerivedType ] AND Inherits [ Empty ] - N/A - CalculatorDType
Object
  • calculator-type
Characteristic [ Union (CalculatorType) ] [0..1] calculator-type Property
  • value
Pseudo-attribute PT: Empty [1] value Property

6.3.10 Environment Payload Class Mapping

The Payload UML/JSON Mapping for the "Environment" Class is given in Table 6.3.10.

Table 6.3.10 Payload UML/JSON Mapping for the "Environment" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Environment Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - EnvironmentDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • description
Attribute PT: NormalizedString [0..1] description Property
  • medical
Attribute PT: NormalizedString [0..1] medical Property
  • software
Attribute PT: NormalizedString [0..1] software Property
  • hardware
Attribute PT: NormalizedString [0..1] hardware Property
  • breaks
Attribute PT: Boolean [0..1] breaks Property

6.3.11 FeatureSet Payload Class Mapping

The Payload UML/JSON Mapping for the "FeatureSet" Class is given in Table 6.3.11.

Table 6.3.11 Payload UML/JSON Mapping for the "FeatureSet" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
FeatureSet Core Container [ Unordered ] - N/A - FeatureSetDType Object
  • linguistic-guidance
Attribute PT: Empty [0..1] linguistic-guidance Property
  • keyword-emphasis
Attribute PT: Empty [0..1] keyword-emphasis Property
  • keyword-translation
Attribute PT: Empty [0..1] keyword-translation Property
  • simplified-language-portions
Attribute PT: Empty [0..1] simplified-language-portions Property
  • simplified-graphics
Attribute PT: Empty [0..1] simplified-graphics Property
  • item-translation
Attribute PT: Empty [0..1] item-translation Property
  • sign-language
Attribute PT: Empty [0..1] sign-language Property
  • encouragement
Attribute PT: Empty [0..1] encouragement Property
  • additional-testing-time
Attribute PT: Empty [0..1] additional-testing-time Property
  • line-reader
Attribute PT: Empty [0..1] line-reader Property
  • magnification
Attribute PT: Empty [0..1] magnification Property
  • spoken
Attribute PT: Empty [0..1] spoken Property
  • tactile
Attribute PT: Empty [0..1] tactile Property
  • braille
Attribute PT: Empty [0..1] braille Property
  • answer-masking
Attribute PT: Empty [0..1] answer-masking Property
  • keyboard-directions
Attribute PT: Empty [0..1] keyboard-directions Property
  • additional-directions
Attribute PT: Empty [0..1] additional-directions Property
  • long-description
Attribute PT: Empty [0..1] long-description Property
  • captions
Attribute PT: Empty [0..1] captions Property
  • transcript
Attribute PT: Empty [0..1] transcript Property
  • alternative-text
Attribute PT: Empty [0..1] alternative-text Property
  • audio-description
Attribute PT: Empty [0..1] audio-description Property
  • high-contrast
Attribute PT: Empty [0..1] high-contrast Property
  • input-requirements
Attribute PT: Empty [0..1] input-requirements Property
  • language-of-interface
Attribute PT: Empty [0..1] language-of-interface Property
  • layout-single-column
Attribute PT: Empty [0..1] layout-single-column Property
  • text-appearance
Attribute PT: Empty [0..1] text-appearance Property
  • calculator-on-screen
Attribute PT: Empty [0..1] calculator-on-screen Property
  • dictionary-on-screen
Attribute PT: Empty [0..1] dictionary-on-screen Property
  • glossary-on-screen
Attribute PT: Empty [0..1] glossary-on-screen Property
  • thesaurus-on-screen
Attribute PT: Empty [0..1] thesaurus-on-screen Property
  • homophone-checker-on-screen
Attribute PT: Empty [0..1] homophone-checker-on-screen Property
  • note-taking-on-screen
Attribute PT: Empty [0..1] note-taking-on-screen Property
  • visual-organizer-on-screen
Attribute PT: Empty [0..1] visual-organizer-on-screen Property
  • outliner-on-screen
Attribute PT: Empty [0..1] outliner-on-screen Property
  • peer-interaction-on-screen
Attribute PT: Empty [0..1] peer-interaction-on-screen Property
  • spell-checker-on-screen
Attribute PT: Empty [0..1] spell-checker-on-screen Property
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

6.3.12 FontFace Payload Class Mapping

The Payload UML/JSON Mapping for the "FontFace" Class is given in Table 6.3.12.

Table 6.3.12 Payload UML/JSON Mapping for the "FontFace" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
FontFace Core Container [ Unordered ] - N/A - FontFaceDType Object
  • font-name
Attribute PT: NormalizedString [0.. *] font-name Array of Properties
  • generic-font-face
Attribute [ Enumeration (FontFaceEnum) ] [1] generic-font-face Property

6.3.13 LanguageMode Payload Class Mapping

The Payload UML/JSON Mapping for the "LanguageMode" Class is given in Table 6.3.13.

Table 6.3.13 Payload UML/JSON Mapping for the "LanguageMode" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LanguageMode Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - LanguageModeDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • language
Characteristic PT: Language [1] language Property

6.3.14 LineReader Payload Class Mapping

The Payload UML/JSON Mapping for the "LineReader" Class is given in Table 6.3.14.

Table 6.3.14 Payload UML/JSON Mapping for the "LineReader" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LineReader Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - LineReaderDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • highlight-color
Characteristic DT: Hex (PT: String) [0..1] highlight-color Property

6.3.15 LongDescription Payload Class Mapping

The Payload UML/JSON Mapping for the "LongDescription" Class is given in Table 6.3.15.

Table 6.3.15 Payload UML/JSON Mapping for the "LongDescription" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LongDescription Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - LongDescriptionDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • hide-visually
Characteristic PT: Boolean [0..1] hide-visually Property

6.3.16 Magnification Payload Class Mapping

The Payload UML/JSON Mapping for the "Magnification" Class is given in Table 6.3.16.

Table 6.3.16 Payload UML/JSON Mapping for the "Magnification" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Magnification Core Container [ Selection ] AND Inherits [ ReplacesAccessMode ] - N/A - MagnificationDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • all-content
Attribute DT: ZoomAmount (PT: Empty) XOR [0..1] all-content Property
  • select-magnification
Attribute SelectMagnification XOR [0..1] select-magnification Property

6.3.17 PersonSourcedId Payload Class Mapping

The Payload UML/JSON Mapping for the "PersonSourcedId" Class is given in Table 6.3.17.

Table 6.3.17 Payload UML/JSON Mapping for the "PersonSourcedId" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
PersonSourcedId Core Container [ DerivedType ] AND Inherits [ NormalizedString ] - N/A - PersonSourcedIdDType
Object
  • source-system
Characteristic PT: NormalizedString [1] source-system Property
  • value
Pseudo-attribute PT: NormalizedString [1] value Property

6.3.18 ReplacesAccessMode Payload Class Mapping

The Payload UML/JSON Mapping for the "ReplacesAccessMode" Class is given in Table 6.3.18.

Table 6.3.18 Payload UML/JSON Mapping for the "ReplacesAccessMode" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ReplacesAccessMode Core Container [ Unordered ] - N/A - ReplacesAccessModeDType Object
  • replace-access-mode-auditory
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
Attribute PT: Empty [0..1] replace-access-mode-visual Property

6.3.19 SelectMagnification Payload Class Mapping

The Payload UML/JSON Mapping for the "SelectMagnification" Class is given in Table 6.3.19.

Table 6.3.19 Payload UML/JSON Mapping for the "SelectMagnification" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SelectMagnification Core Container [ Sequence ] - N/A - SelectMagnificationDType Object
  • text
Attribute DT: ZoomAmount (PT: Empty) [0..1] text Property
  • non-text
Attribute DT: ZoomAmount (PT: Empty) [0..1] non-text Property

6.3.20 Spoken Payload Class Mapping

The Payload UML/JSON Mapping for the "Spoken" Class is given in Table 6.3.20.

Table 6.3.20 Payload UML/JSON Mapping for the "Spoken" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Spoken Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - SpokenDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • reading-type
Attribute [ Enumeration (ReadingTypeEnum) ] [1] reading-type Property
  • restriction-type
Attribute [ Union (RestrictionType) ] [0.. *] restriction-type Array of Properties
  • speech-rate
Attribute PT: Integer [0..1] speech-rate Property
  • pitch
Attribute PT: Float [0..1] pitch Property
  • volume
Attribute DT: Volume (PT: Float) [0..1] volume Property
  • link-indication
Attribute [ Enumeration (LinkIndicationEnum) ] [1] link-indication Property
  • typing-echo
Attribute [ Enumeration (TypingEchoEnum) ] [1] typing-echo Property

6.3.21 TextAppearance Payload Class Mapping

The Payload UML/JSON Mapping for the "TextAppearance" Class is given in Table 6.3.21.

Table 6.3.21 Payload UML/JSON Mapping for the "TextAppearance" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
TextAppearance Core Container [ Unordered ] AND Inherits [ ReplacesAccessMode ] - N/A - TextAppearanceDType
Object
  • replace-access-mode-auditory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-auditory Property
  • replace-access-mode-color
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-color Property
  • replace-access-mode-item-size
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-item-size Property
  • replace-access-mode-olfactory
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-olfactory Property
  • replace-access-mode-orientation
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-orientation Property
  • replace-access-mode-position
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-position Property
  • replace-access-mode-tactile
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-tactile Property
  • replace-access-mode-text-on-image
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-text-on-image Property
  • replace-access-mode-textual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-textual Property
  • replace-access-mode-visual
    [ INHERITED ]
Attribute PT: Empty [0..1] replace-access-mode-visual Property
  • color-theme
Attribute [ Union (ColorThemeExtEnum) ] [0..1] color-theme Property
  • background-color
Attribute DT: Hex (PT: String) [0..1] background-color Property
  • font-color
Attribute DT: Hex (PT: String) [0..1] font-color Property
  • font-size
Attribute PT: Float [0..1] font-size Property
  • font-face
Attribute FontFace [0..1] font-face Property
  • line-spacing
Attribute PT: Float [0..1] line-spacing Property
  • line-height
Attribute PT: Float [0..1] line-height Property
  • letter-spacing
Attribute PT: Float [0..1] letter-spacing Property
  • uniform-font-sizing
Attribute PT: Empty [0..1] uniform-font-sizing Property
  • word-spacing
Attribute PT: Float [0..1] word-spacing Property
  • word-wrapping
Attribute PT: Empty [0..1] word-wrapping Property
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

6.3.22 UserAFAPNPRecord Payload Class Mapping

The Payload UML/JSON Mapping for the "UserAFAPNPRecord" Class is given in Table 6.3.22.

Table 6.3.22 Payload UML/JSON Mapping for the "UserAFAPNPRecord" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserAFAPNPRecord Core Container [ Sequence ] - N/A - UserAFAPNPRecordDType Object
  • personSourcedId
Attribute DT: PersonSourcedId (PT: NormalizedString) [1] personSourcedId Property
  • activitySourcedId
Attribute DT: ActivitySourcedId (PT: NormalizedString) [1] activitySourcedId Property
  • user
Attribute UserRecord [1] user Property
  • access-for-all-pnp
Attribute AccessForAllPNP [1] access-for-all-pnp Property

6.3.23 UserId Payload Class Mapping

The Payload UML/JSON Mapping for the "UserId" Class is given in Table 6.3.23.

Table 6.3.23 Payload UML/JSON Mapping for the "UserId" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserId Core Container [ Unordered ] - N/A - UserIdDType Object
  • type
Attribute PT: NormalizedString [1] type Property
  • identifier
Attribute DT: Identifier (PT: NormalizedString) [1] identifier Property

6.3.24 UserRecord Payload Class Mapping

The Payload UML/JSON Mapping for the "UserRecord" Class is given in Table 6.3.24.

Table 6.3.24 Payload UML/JSON Mapping for the "UserRecord" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserRecord Core Container [ Unordered ] - N/A - UserRecordDType Object
  • userIds
Attribute UserId [1.. *] userIds Array of Properties
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

6.3.25 ZoomAmount Payload Class Mapping

The Payload UML/JSON Mapping for the "ZoomAmount" Class is given in Table 6.3.25.

Table 6.3.25 Payload UML/JSON Mapping for the "ZoomAmount" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ZoomAmount Core Container [ DerivedType ] AND Inherits [ Empty ] - N/A - ZoomAmountDType
Object
  • zoom-amount
Characteristic PT: Float [0..1] zoom-amount Property
  • value
Pseudo-attribute PT: Empty [1] value Property

6.3.26 imsx_CodeMinor Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_CodeMinor" Class is given in Table 6.3.26.

Table 6.3.26 Payload UML/JSON Mapping for the "imsx_CodeMinor" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_CodeMinor Core Container [ Sequence ] - N/A - imsx_CodeMinorDType Object
  • imsx_codeMinorField
Attribute imsx_CodeMinorField [1.. *] imsx_codeMinorField Array of Properties

6.3.27 imsx_CodeMinorField Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_CodeMinorField" Class is given in Table 6.3.27.

Table 6.3.27 Payload UML/JSON Mapping for the "imsx_CodeMinorField" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_CodeMinorField Core Container [ Sequence ] - N/A - imsx_CodeMinorFieldDType Object
  • imsx_codeMinorFieldName
Attribute PT: NormalizedString [1] imsx_codeMinorFieldName Property
  • imsx_codeMinorFieldValue
Attribute [ Enumeration (imsx_CodeMinorValueEnum) ] [1] imsx_codeMinorFieldValue Property

6.3.28 imsx_StatusInfo Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_StatusInfo" Class is given in Table 6.3.28.

Table 6.3.28 Payload UML/JSON Mapping for the "imsx_StatusInfo" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_StatusInfo Core Container [ Sequence ] - N/A - imsx_StatusInfoDType Object
  • imsx_codeMajor
Attribute [ Enumeration (imsx_CodeMajorEnum) ] [1] imsx_codeMajor Property
  • imsx_severity
Attribute [ Enumeration (imsx_SeverityEnum) ] [1] imsx_severity Property
  • imsx_description
Attribute PT: String [0..1] imsx_description Property
  • imsx_codeMinor
Attribute imsx_CodeMinor [0..1] imsx_codeMinor Property

6.4 Enumerated Class UML/JSON Mapping

The definition of the set of enumerated data-types used in this specification is given in Table 6.4. The syntax and semantics for the Enumerated Class UML/JSON mapping representations is described in Appendix A2.3.

Table 6.4 The UML/JSON Map Enumerated Class Definitions.
Enumeration Class Name Description
AccessModeEnum Enumerated value set of: { auditory | color | item-size | olfactory | orientation | position | tactile | text-on-image | textual | visual }.
AdaptationDetailEnum Enumerated value set of: { enhanced | verbatim | real-time | symbolic | recorded | synthesized }.
AdaptationMediaTypeEnum Enumerated value set of: { Daisy | braille | NIMAS | MathML | ChemML | LaTeX | OEBPS | PDF | LIT | Nemeth | EPUB3 }.
AdaptationTypeEnum Enumerated value set of: { alternative-text | audio-description | captions | e-book | haptic | high-contrast | long-description | sign-language | transcript }.
BrailleTypeEnum Enumerated value set of: { ebae | ueb }.
CalculatorTypeEnum Enumerated value set of: { basic | standard | scientific | graphing }.
ColorThemeEnum Enumerated value set of: { default | default-reverse | high-contrast | high-contrast-reverse | yellow-blue | blue-yellow | black-rose | rose-black | black-cyan | cyan-black | black-cream | cream-black | medgray-darkgray | darkgray-medgray }.
ControlFexibilityEnum Enumerated value set of: { full-keyboard-control | full-mouse-control }.
DeliveryModeEnum Enumerated value set of: { refreshable | embossed }.
EducationalComplexityEnum Enumerated value set of: { enriched | simplified }.
FontFaceEnum Enumerated value set of: { serif | sans serif | monospaced | cursive | fantasy }.
GradeEnum Enumerated value set of: { 1 | 2 | 3 }.
HazardVocabularyEnum Enumerated value set of: { flashing | sound | olfactory-hazard | motion-simulation }.
LinkIndicationEnum Enumerated value set of: { speak-link | different-voice | sound-effect | none }.
MathTypeEnum Enumerated value set of: { nemeth | ueb }.
ReadingTypeEnum Enumerated value set of: { screen-reader | computer-read-aloud }.
RestrictionTypeEnum Enumerated value set of: { unrestricted | word-by-word | directions-only | skip-math-equations | skip-chemistry-equations }.
TypingEchoEnum Enumerated value set of: { characters | words | characters-and-words | none }.
imsx_CodeMajorEnum Enumerated value set of: { success | processing | failure | unsupported }.
imsx_CodeMinorValueEnum Enumerated value set of: { fullsuccess | forbidden | internal_server_error | invalid_filter_field | invalid_selection_field | invalid_sort_field | invaliddata | server_busy | unauthorisedrequest | unknownobject | unsupported | user_already_exists }.
imsx_SeverityEnum Enumerated value set of: { status | warning | error }.

6.5 Enumerated List Class UML/JSON Mapping

There are no enumerated list class definitions.

6.6 Union Class UML/JSON Mapping

The definition of the set of union data-types used in this specification is given in Table 6.6. The syntax and semantics for the Union Class UML/JSON mapping representations is described in Appendix A2.4.

Table 6.6 The UML/JSON Map Union Class Definitions.
Union Class Name Description
AccessModeValue This is a value from one of the set of data-types: AccessModeEnum, ExtensionString
AdaptationDetailValue This is a value from one of the set of data-types: ExtensionString, AdaptationDetailEnum
AdaptationMediaTypeValue This is a value from one of the set of data-types: AdaptationMediaTypeEnum, ExtensionString
AdaptationTypeValue This is a value from one of the set of data-types: ExtensionString, AdaptationTypeEnum
BrailleType This is a value from one of the set of data-types: ExtensionString, BrailleTypeEnum
CalculatorType This is a value from one of the set of data-types: CalculatorTypeEnum, ExtensionString
ColorThemeExtEnum This is a value from one of the set of data-types: ExtensionString, ColorThemeEnum
ControlFlexibilityValueExtEnum This is a value from one of the set of data-types: ControlFexibilityEnum, ExtensionString
EducationalComplexityValueExtEnum This is a value from one of the set of data-types: EducationalComplexityEnum, ExtensionString
HazardValueExtEnum This is a value from one of the set of data-types: HazardVocabularyEnum, ExtensionString
MathType This is a value from one of the set of data-types: MathTypeEnum, ExtensionString
RestrictionType This is a value from one of the set of data-types: RestrictionTypeEnum, ExtensionString

6.7 Primitive Type UML/JSON Mapping

The definition of the set of primitive data-types used in this specification is given in Table 6.7. The syntax and semantics for the Primitive Type UML/JSON mapping representations is described in Appendix A2.4.

Table 6.7 The UML/JSON Map Primitive Type Definitions.
Primitive Type Name Description
Boolean This is mapped to the JSON "boolean" data-type.
Empty This is used to denote an element that will not contain a value i.e. it is empty. The 1EdTech JSON best practices prohibit the use null or empty values for a property. Therefore the empty value for the property is replace by the default value of "active". The JSON code is:
"propertyName" : "active"                    
Float This is mapped to the JSON "number" data-type with the format of "float".
Integer This is mapped to the JSON "integer" data-type with the format of "int32".
Language This is mapped to the JSON "string" data-type.
Namespace This denotes an extension facility. The class is permitted to have proprietary JSON properties i.e. "additionalProperties: true".
NormalizedString This is mapped to the JSON "string" data-type.
String This is mapped to the JSON "string" data-type.

toc | top

7. JSON Payloads

This Section is NOT NORMATIVE.

7.1 "addAfAPNPRecordForUserForActivity" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 7.1.1 - Tabular representation of the JSON payload for the request message for a "addAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    access-for-all-pnp-record [1..1] Object This is used to contain the description of a single AfA PNP Record.
            personSourcedId [1..1] Object This is the unique identifier for the person who owns the PNP record.
                    source-system [1..1] String The source system that was responsible for the allocation of the 'sourcedId' for the Person.
                    value [1..1] String This is the unique identifier for the person who owns the PNP record.
            activitySourcedId [1..1] String This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.
            access-for-all-pnp [1..1] Object This is actual AfA PNP Record instance.
                    access-mode-required [0..*] Array [ Object ] Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    adaptation-type-required [0..*] Array [ Object ] Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationType vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationTypeValue) A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    at-interoperable [0..1] Boolean A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible. Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system. The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.
                    educational-complexity-of-adaptation [0..1] Union(EducationalComplexityValueExtEnum) A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    hazard-avoidance [0..*] Array [ Union(HazardValueExtEnum) ] A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    input-requirements [0..1] Union(ControlFlexibilityValueExtEnum) Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    language-of-adaptation [0..*] Array [ Object ] A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    language-of-interface [0..*] Array [ Object ] A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    adaptation-detail-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationDetail vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationDetailValue) A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    adaptation-media-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationMedia vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationMediaTypeValue) A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    educational-level-of-adaptation [0..*] Array [ String ] A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.
                    linguistic-guidance [0..1] Object Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-emphasis [0..1] Object Certain words are designated in the content as key words. Programs should designate how they are to be emphasized. This value is used to define the corresponding user preference setting.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-translation [0..1] Object Certain specific words would have translations available to users who need some assistance with difficult or important words in the content. The user profile should specify the language requested and the content would supply translation for the required languages. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    simplified-language-portions [0..1] Object An entirely different version of a question may be given to a user using simpler language. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    simplified-graphics [0..1] Object An entirely different version of a question may be given to a user using simpler graphics. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    item-translation [0..1] Object An alternate item is made and the user exposed to the alternate language version. The Item information must contain which specific language it supports. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    sign-language [0..1] Object Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    encouragement [0..1] Object Some users may benefit from receiving expressions of encouragement as they work on the Test/Item. This is the container for the user preferences specific to the provision of expressions of encouragement.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-testing-time [0..1] Object If a test has a time limit, the user will be allowed additional time to complete the test. This is the container for the user's addition time preferences.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            time-multiplier XOR [1..1] Float Providing the additional testing time as a multiplier of the set time.
                            fixed-minutes XOR [1..1] Integer Providing the additional testing time as an additional number of minutes.
                            unlimited XOR [1..1] Enumeration (Value: active) Providing the additional testing time as an unlimited time.
                    line-reader [0..1] Object Describes the preferences for the use of a line reader.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            highlight-color [0..1] String The highlight color to be used by the display when identifying the position of the line reader.
                    magnification [0..1] Object Describes the use of the magnification settings for the user.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            all-content XOR [0..1] Object This is the default zoom value for all content.
                                    zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                    value [1..1] Enumeration (Value: active) This is the default zoom value for all content.
                            select-magnification XOR [0..1] Object This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.
                                    text [0..1] Object The magnification value for text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for text display.
                                    non-text [0..1] Object The magnification value for non-text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for non-text display.
                    spoken [0..1] Object Describes the settings for use of Speech devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            reading-type [1..1] Enumeration Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                            restriction-type [0..*] Array [ Union(RestrictionType) ] Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                            speech-rate [0..1] Integer Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.
                            pitch [0..1] Float Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            volume [0..1] Float Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            link-indication [1..1] Enumeration The nature of handling embedded links. This is based upon an enumerated vocabulary.
                            typing-echo [1..1] Enumeration Unit of reading to be spoken. This is an enumerated vocabulary.
                    tactile [0..1] Object Describes the settings for use of tactile devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    braille [0..1] Object Describes the settings for use of Braille devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [0..1] String The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.
                            delivery-mode [0..1] Enumeration The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                            grade [0..1] Enumeration The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                            braille-type [0..1] Union(BrailleType) The type of Braille to be used.
                            math-type [0..1] Union(MathType) The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    answer-masking [0..1] Object Various types of content masking are possible to limit the amount of content rendered when an item is first presented. This is the container for the user's preferred masking settings for limiting the range of shown answers.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyboard-directions [0..1] Object Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-directions [0..1] Object Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    long-description [0..1] Object An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            hide-visually [0..1] Boolean Defines whether or not the long description is hidden from view as a default setting.
                    captions [0..1] Object Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    environment [0..1] Object The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            description [0..1] String A human-readable description of the accessibility support environment.
                            medical [0..1] String A human-readable description of the available medical support.
                            software [0..1] String A human-readable description of the available accessibility software.
                            hardware [0..1] String A human-readable description of the available accessibility hardware.
                            breaks [0..1] Boolean A human-readable description of the available breaks i.e. moments away for the activity itself.
                    transcript [0..1] Object A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    alternative-text [0..1] Object Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    audio-description [0..1] Object Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    high-contrast [0..1] Object A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    layout-single-column [0..1] Object The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    text-appearance [0..1] Object This is used to define the set of characteristics that describe the appearance of displayed text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            color-theme [0..1] Union(ColorThemeExtEnum) The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                            background-color [0..1] String Background color in an interface that is displaying text.
                            font-color [0..1] String Font color in an interface that is displaying text.
                            font-size [0..1] Float Size of a font. This value is in points.
                            font-face [0..1] Object The font face. This is an enumerated vocabulary.
                                    font-name [0..*] Array [ String ] The name of the font to be used for text display.
                                    generic-font-face [1..1] Enumeration The generic font face to be use for text. This is based upon an enumerated vocabulary.
                            line-spacing [0..1] Float The line spacing.
                            line-height [0..1] Float The line height.
                            letter-spacing [0..1] Float The spacing between letters. This value is in points.
                            uniform-font-sizing [0..1] Enumeration (Value: active) Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.
                            word-spacing [0..1] Float The spacing between words. This value is in points.
                            word-wrapping [0..1] Enumeration (Value: active) Defines if word wrapping is to be used. If present then word wrapping is to be used.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the TextAppearance class. The form of the extension is dependent on the type of binding.
                    calculator-on-screen [0..1] Object The presence of this attribute makes available, on screen, the calculator tool.
                            calculator-type [0..1] Union(CalculatorType) The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                            value [1..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the calculator tool.
                    dictionary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the dictionary tool.
                    glossary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the glossary tool.
                    thesaurus-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the thesaurus tool.
                    homophone-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the homophone checker tool.
                    note-taking-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the note taking tool.
                    visual-organizer-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the visual organizer tool.
                    outliner-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the outliner tool.
                    peer-interaction-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the peer interaction tool.
                    spell-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the spell checker tool.
                    activate-at-initialization-set [0..1] Object This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    activate-as-option-set [0..1] Object This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    prohibit-set [0..1] Object This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.

An example of the request payload is shown in the code block below.

Code 7.1.1 - JSON payload example for the request message for a "addAfAPNPRecordForUserForActivity" operation.
    {
        "access-for-all-pnp-record" : {
            "personSourcedId" : {
                "value" : "..NormalizedString..",
                "source-system" : "..NormalizedString.."
            },
            "activitySourcedId" : "..NormalizedString..",
            "access-for-all-pnp" : {
                "access-mode-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-type-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "at-interoperable" : "..Boolean..",
                "educational-complexity-of-adaptation" : "..select from Union..",
                "hazard-avoidance" : [ "..select from Union..", ..., "..select from Union.." ],
                "input-requirements" : "..select from Union..",
                "language-of-adaptation" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "language-of-interface" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "adaptation-detail-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-media-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "educational-level-of-adaptation" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "linguistic-guidance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-emphasis" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "simplified-language-portions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "simplified-graphics" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "item-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "sign-language" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "encouragement" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-testing-time" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "time-multiplier" : ..Number(Float)..,
                    "fixed-minutes" : ..Number(Integer)..,
                    "unlimited" : "..Fixed value=active.."
                },
                "line-reader" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "highlight-color" : "..String.."
                },
                "magnification" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "all-content" : {
                        "value" : "..Fixed value=active..",
                        "zoom-amount" : ..Number(Float)..
                    },
                    "select-magnification" : {
                        "text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        },
                        "non-text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        }
                    }
                },
                "spoken" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "reading-type" : "screen-reader"|"computer-read-aloud",
                    "restriction-type" : [ "..select from Union..", ..., "..select from Union.." ],
                    "speech-rate" : ..Number(Integer)..,
                    "pitch" : ..Number(Float)..,
                    "volume" : ..Number(Float)..,
                    "link-indication" : "speak-link"|"different-voice"|"sound-effect"|"none",
                    "typing-echo" : "characters"|"words"|"characters-and-words"|"none"
                },
                "tactile" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "braille" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code)..",
                    "delivery-mode" : "refreshable"|"embossed",
                    "grade" : "1"|"2"|"3",
                    "braille-type" : "..select from Union..",
                    "math-type" : "..select from Union.."
                },
                "answer-masking" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyboard-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "long-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "hide-visually" : "..Boolean.."
                },
                "captions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "environment" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "description" : "..NormalizedString..",
                    "medical" : "..NormalizedString..",
                    "software" : "..NormalizedString..",
                    "hardware" : "..NormalizedString..",
                    "breaks" : "..Boolean.."
                },
                "transcript" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "alternative-text" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "audio-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "high-contrast" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "layout-single-column" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "text-appearance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "color-theme" : "..select from Union..",
                    "background-color" : "..String..",
                    "font-color" : "..String..",
                    "font-size" : ..Number(Float)..,
                    "font-face" : {
                        "font-name" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                        "generic-font-face" : "serif"|"sans serif"|"monospaced"|"cursive"|"fantasy"
                    },
                    "line-spacing" : ..Number(Float)..,
                    "line-height" : ..Number(Float)..,
                    "letter-spacing" : ..Number(Float)..,
                    "uniform-font-sizing" : "..Fixed value=active..",
                    "word-spacing" : ..Number(Float)..,
                    "word-wrapping" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "calculator-on-screen" : {
                    "value" : "..Fixed value=active..",
                    "calculator-type" : "..select from Union.."
                },
                "dictionary-on-screen" : "..Fixed value=active..",
                "glossary-on-screen" : "..Fixed value=active..",
                "thesaurus-on-screen" : "..Fixed value=active..",
                "homophone-checker-on-screen" : "..Fixed value=active..",
                "note-taking-on-screen" : "..Fixed value=active..",
                "visual-organizer-on-screen" : "..Fixed value=active..",
                "outliner-on-screen" : "..Fixed value=active..",
                "peer-interaction-on-screen" : "..Fixed value=active..",
                "spell-checker-on-screen" : "..Fixed value=active..",
                "activate-at-initialization-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "activate-as-option-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "prohibit-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "..permitted extension point.." : "..user defined value.."
            }
        }
    }
                        

7.2 "addAfAPNPRecordForUserForActivity" Response Payloads

7.2.1 Response Payloads for the HTTP Codes (201, default, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.2.1 - Tabular representation of the JSON payload for "201, default, 401, 403, 404, 429, 500" response messages for a "addAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.1b.

Code 7.2.1 - JSON payload example for "201, default, 401, 403, 404, 429, 500" response messages for a "addAfAPNPRecordForUserForActivity" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.3 "createAfAPNPRecordForUserForActivity" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 7.3.1 - Tabular representation of the JSON payload for the request message for a "createAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    access-for-all-pnp-record [1..1] Object This is used to contain the combined description of the user and their first AfA PNP Record.
            personSourcedId [1..1] Object This is the unique identifier for the person who owns the PNP record(s)
                    source-system [1..1] String The source system that was responsible for the allocation of the 'sourcedId' for the Person.
                    value [1..1] String This is the unique identifier for the person who owns the PNP record(s)
            activitySourcedId [1..1] String This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.
            user [1..1] Object The user record. This contains the minimum information required to identify, uniquely (excluding the use of the 'sourcedid'), an individual in the AfA PNP Server.
                    userIds [1..*] Array [ Object ] This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                            type [1..1] String The type of identifier. This is no predefined vocabuary.
                            identifier [1..1] String The identifier, of the defined type, for the user.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            access-for-all-pnp [1..1] Object This is actual AfA PNP Record instance.
                    access-mode-required [0..*] Array [ Object ] Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    adaptation-type-required [0..*] Array [ Object ] Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationType vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationTypeValue) A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    at-interoperable [0..1] Boolean A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible. Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system. The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.
                    educational-complexity-of-adaptation [0..1] Union(EducationalComplexityValueExtEnum) A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    hazard-avoidance [0..*] Array [ Union(HazardValueExtEnum) ] A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    input-requirements [0..1] Union(ControlFlexibilityValueExtEnum) Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    language-of-adaptation [0..*] Array [ Object ] A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    language-of-interface [0..*] Array [ Object ] A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    adaptation-detail-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationDetail vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationDetailValue) A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    adaptation-media-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationMedia vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationMediaTypeValue) A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    educational-level-of-adaptation [0..*] Array [ String ] A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.
                    linguistic-guidance [0..1] Object Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-emphasis [0..1] Object Certain words are designated in the content as key words. Programs should designate how they are to be emphasized. This value is used to define the corresponding user preference setting.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-translation [0..1] Object Certain specific words would have translations available to users who need some assistance with difficult or important words in the content. The user profile should specify the language requested and the content would supply translation for the required languages. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    simplified-language-portions [0..1] Object An entirely different version of a question may be given to a user using simpler language. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    simplified-graphics [0..1] Object An entirely different version of a question may be given to a user using simpler graphics. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    item-translation [0..1] Object An alternate item is made and the user exposed to the alternate language version. The Item information must contain which specific language it supports. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    sign-language [0..1] Object Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    encouragement [0..1] Object Some users may benefit from receiving expressions of encouragement as they work on the Test/Item. This is the container for the user preferences specific to the provision of expressions of encouragement.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-testing-time [0..1] Object If a test has a time limit, the user will be allowed additional time to complete the test. This is the container for the user's addition time preferences.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            time-multiplier XOR [1..1] Float Providing the additional testing time as a multiplier of the set time.
                            fixed-minutes XOR [1..1] Integer Providing the additional testing time as an additional number of minutes.
                            unlimited XOR [1..1] Enumeration (Value: active) Providing the additional testing time as an unlimited time.
                    line-reader [0..1] Object Describes the preferences for the use of a line reader.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            highlight-color [0..1] String The highlight color to be used by the display when identifying the position of the line reader.
                    magnification [0..1] Object Describes the use of the magnification settings for the user.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            all-content XOR [0..1] Object This is the default zoom value for all content.
                                    zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                    value [1..1] Enumeration (Value: active) This is the default zoom value for all content.
                            select-magnification XOR [0..1] Object This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.
                                    text [0..1] Object The magnification value for text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for text display.
                                    non-text [0..1] Object The magnification value for non-text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for non-text display.
                    spoken [0..1] Object Describes the settings for use of Speech devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            reading-type [1..1] Enumeration Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                            restriction-type [0..*] Array [ Union(RestrictionType) ] Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                            speech-rate [0..1] Integer Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.
                            pitch [0..1] Float Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            volume [0..1] Float Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            link-indication [1..1] Enumeration The nature of handling embedded links. This is based upon an enumerated vocabulary.
                            typing-echo [1..1] Enumeration Unit of reading to be spoken. This is an enumerated vocabulary.
                    tactile [0..1] Object Describes the settings for use of tactile devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    braille [0..1] Object Describes the settings for use of Braille devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [0..1] String The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.
                            delivery-mode [0..1] Enumeration The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                            grade [0..1] Enumeration The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                            braille-type [0..1] Union(BrailleType) The type of Braille to be used.
                            math-type [0..1] Union(MathType) The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    answer-masking [0..1] Object Various types of content masking are possible to limit the amount of content rendered when an item is first presented. This is the container for the user's preferred masking settings for limiting the range of shown answers.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyboard-directions [0..1] Object Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-directions [0..1] Object Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    long-description [0..1] Object An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            hide-visually [0..1] Boolean Defines whether or not the long description is hidden from view as a default setting.
                    captions [0..1] Object Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    environment [0..1] Object The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            description [0..1] String A human-readable description of the accessibility support environment.
                            medical [0..1] String A human-readable description of the available medical support.
                            software [0..1] String A human-readable description of the available accessibility software.
                            hardware [0..1] String A human-readable description of the available accessibility hardware.
                            breaks [0..1] Boolean A human-readable description of the available breaks i.e. moments away for the activity itself.
                    transcript [0..1] Object A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    alternative-text [0..1] Object Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    audio-description [0..1] Object Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    high-contrast [0..1] Object A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    layout-single-column [0..1] Object The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    text-appearance [0..1] Object This is used to define the set of characteristics that describe the appearance of displayed text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            color-theme [0..1] Union(ColorThemeExtEnum) The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                            background-color [0..1] String Background color in an interface that is displaying text.
                            font-color [0..1] String Font color in an interface that is displaying text.
                            font-size [0..1] Float Size of a font. This value is in points.
                            font-face [0..1] Object The font face. This is an enumerated vocabulary.
                                    font-name [0..*] Array [ String ] The name of the font to be used for text display.
                                    generic-font-face [1..1] Enumeration The generic font face to be use for text. This is based upon an enumerated vocabulary.
                            line-spacing [0..1] Float The line spacing.
                            line-height [0..1] Float The line height.
                            letter-spacing [0..1] Float The spacing between letters. This value is in points.
                            uniform-font-sizing [0..1] Enumeration (Value: active) Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.
                            word-spacing [0..1] Float The spacing between words. This value is in points.
                            word-wrapping [0..1] Enumeration (Value: active) Defines if word wrapping is to be used. If present then word wrapping is to be used.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the TextAppearance class. The form of the extension is dependent on the type of binding.
                    calculator-on-screen [0..1] Object The presence of this attribute makes available, on screen, the calculator tool.
                            calculator-type [0..1] Union(CalculatorType) The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                            value [1..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the calculator tool.
                    dictionary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the dictionary tool.
                    glossary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the glossary tool.
                    thesaurus-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the thesaurus tool.
                    homophone-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the homophone checker tool.
                    note-taking-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the note taking tool.
                    visual-organizer-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the visual organizer tool.
                    outliner-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the outliner tool.
                    peer-interaction-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the peer interaction tool.
                    spell-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the spell checker tool.
                    activate-at-initialization-set [0..1] Object This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    activate-as-option-set [0..1] Object This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    prohibit-set [0..1] Object This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.

An example of the request payload is shown in the code block below.

Code 7.3.1 - JSON payload example for the request message for a "createAfAPNPRecordForUserForActivity" operation.
    {
        "access-for-all-pnp-record" : {
            "personSourcedId" : {
                "value" : "..NormalizedString..",
                "source-system" : "..NormalizedString.."
            },
            "activitySourcedId" : "..NormalizedString..",
            "user" : {
                "userIds" : [
                    {
                        "type" : "..NormalizedString..",
                        "identifier" : "..NormalizedString.."
                    },
                    {...},
                    {...}
                ],
                "..permitted extension point.." : "..user defined value.."
            },
            "access-for-all-pnp" : {
                "access-mode-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-type-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "at-interoperable" : "..Boolean..",
                "educational-complexity-of-adaptation" : "..select from Union..",
                "hazard-avoidance" : [ "..select from Union..", ..., "..select from Union.." ],
                "input-requirements" : "..select from Union..",
                "language-of-adaptation" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "language-of-interface" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "adaptation-detail-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-media-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "educational-level-of-adaptation" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "linguistic-guidance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-emphasis" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "simplified-language-portions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "simplified-graphics" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "item-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "sign-language" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "encouragement" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-testing-time" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "time-multiplier" : ..Number(Float)..,
                    "fixed-minutes" : ..Number(Integer)..,
                    "unlimited" : "..Fixed value=active.."
                },
                "line-reader" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "highlight-color" : "..String.."
                },
                "magnification" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "all-content" : {
                        "value" : "..Fixed value=active..",
                        "zoom-amount" : ..Number(Float)..
                    },
                    "select-magnification" : {
                        "text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        },
                        "non-text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        }
                    }
                },
                "spoken" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "reading-type" : "screen-reader"|"computer-read-aloud",
                    "restriction-type" : [ "..select from Union..", ..., "..select from Union.." ],
                    "speech-rate" : ..Number(Integer)..,
                    "pitch" : ..Number(Float)..,
                    "volume" : ..Number(Float)..,
                    "link-indication" : "speak-link"|"different-voice"|"sound-effect"|"none",
                    "typing-echo" : "characters"|"words"|"characters-and-words"|"none"
                },
                "tactile" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "braille" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code)..",
                    "delivery-mode" : "refreshable"|"embossed",
                    "grade" : "1"|"2"|"3",
                    "braille-type" : "..select from Union..",
                    "math-type" : "..select from Union.."
                },
                "answer-masking" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyboard-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "long-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "hide-visually" : "..Boolean.."
                },
                "captions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "environment" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "description" : "..NormalizedString..",
                    "medical" : "..NormalizedString..",
                    "software" : "..NormalizedString..",
                    "hardware" : "..NormalizedString..",
                    "breaks" : "..Boolean.."
                },
                "transcript" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "alternative-text" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "audio-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "high-contrast" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "layout-single-column" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "text-appearance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "color-theme" : "..select from Union..",
                    "background-color" : "..String..",
                    "font-color" : "..String..",
                    "font-size" : ..Number(Float)..,
                    "font-face" : {
                        "font-name" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                        "generic-font-face" : "serif"|"sans serif"|"monospaced"|"cursive"|"fantasy"
                    },
                    "line-spacing" : ..Number(Float)..,
                    "line-height" : ..Number(Float)..,
                    "letter-spacing" : ..Number(Float)..,
                    "uniform-font-sizing" : "..Fixed value=active..",
                    "word-spacing" : ..Number(Float)..,
                    "word-wrapping" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "calculator-on-screen" : {
                    "value" : "..Fixed value=active..",
                    "calculator-type" : "..select from Union.."
                },
                "dictionary-on-screen" : "..Fixed value=active..",
                "glossary-on-screen" : "..Fixed value=active..",
                "thesaurus-on-screen" : "..Fixed value=active..",
                "homophone-checker-on-screen" : "..Fixed value=active..",
                "note-taking-on-screen" : "..Fixed value=active..",
                "visual-organizer-on-screen" : "..Fixed value=active..",
                "outliner-on-screen" : "..Fixed value=active..",
                "peer-interaction-on-screen" : "..Fixed value=active..",
                "spell-checker-on-screen" : "..Fixed value=active..",
                "activate-at-initialization-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "activate-as-option-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "prohibit-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "..permitted extension point.." : "..user defined value.."
            }
        }
    }
                        

7.4 "createAfAPNPRecordForUserForActivity" Response Payloads

7.4.1 Response Payloads for the HTTP Codes (201, default, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.4.1 - Tabular representation of the JSON payload for "201, default, 401, 403, 404, 429, 500" response messages for a "createAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.2b.

Code 7.4.1 - JSON payload example for "201, default, 401, 403, 404, 429, 500" response messages for a "createAfAPNPRecordForUserForActivity" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.5 "deleteAfAPNPRecordForUserForActivity" Request Payload

There is no payload for this request.

7.6 "deleteAfAPNPRecordForUserForActivity" Response Payloads

7.6.1 Response Payloads for the HTTP Codes (204, default, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.6.1 - Tabular representation of the JSON payload for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.3b.

Code 7.6.1 - JSON payload example for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordForUserForActivity" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.7 "deleteAfAPNPRecordSetForUser" Request Payload

There is no payload for this request.

7.8 "deleteAfAPNPRecordSetForUser" Response Payloads

7.8.1 Response Payloads for the HTTP Codes (204, default, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.8.1 - Tabular representation of the JSON payload for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordSetForUser" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.4b.

Code 7.8.1 - JSON payload example for "204, default, 401, 403, 404, 429, 500" response messages for a "deleteAfAPNPRecordSetForUser" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.9 "getAfAPNPRecordForUserForActivity" Request Payload

There is no payload for this request.

7.10 "getAfAPNPRecordForUserForActivity" Response Payloads

7.10.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 7.10.1 - Tabular representation of the JSON payload for "200" response messages for a "getAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    access-for-all-pnp-record [1..1] Object This is used to contain the description of a single AfA PNP Record.
            personSourcedId [1..1] Object This is the unique identifier for the person who owns the PNP record.
                    source-system [1..1] String The source system that was responsible for the allocation of the 'sourcedId' for the Person.
                    value [1..1] String This is the unique identifier for the person who owns the PNP record.
            activitySourcedId [1..1] String This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.
            access-for-all-pnp [1..1] Object This is actual AfA PNP Record instance.
                    access-mode-required [0..*] Array [ Object ] Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    adaptation-type-required [0..*] Array [ Object ] Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationType vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationTypeValue) A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    at-interoperable [0..1] Boolean A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible. Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system. The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.
                    educational-complexity-of-adaptation [0..1] Union(EducationalComplexityValueExtEnum) A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    hazard-avoidance [0..*] Array [ Union(HazardValueExtEnum) ] A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    input-requirements [0..1] Union(ControlFlexibilityValueExtEnum) Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    language-of-adaptation [0..*] Array [ Object ] A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    language-of-interface [0..*] Array [ Object ] A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    adaptation-detail-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationDetail vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationDetailValue) A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    adaptation-media-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationMedia vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationMediaTypeValue) A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    educational-level-of-adaptation [0..*] Array [ String ] A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.
                    linguistic-guidance [0..1] Object Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-emphasis [0..1] Object Certain words are designated in the content as key words. Programs should designate how they are to be emphasized. This value is used to define the corresponding user preference setting.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-translation [0..1] Object Certain specific words would have translations available to users who need some assistance with difficult or important words in the content. The user profile should specify the language requested and the content would supply translation for the required languages. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    simplified-language-portions [0..1] Object An entirely different version of a question may be given to a user using simpler language. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    simplified-graphics [0..1] Object An entirely different version of a question may be given to a user using simpler graphics. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    item-translation [0..1] Object An alternate item is made and the user exposed to the alternate language version. The Item information must contain which specific language it supports. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    sign-language [0..1] Object Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    encouragement [0..1] Object Some users may benefit from receiving expressions of encouragement as they work on the Test/Item. This is the container for the user preferences specific to the provision of expressions of encouragement.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-testing-time [0..1] Object If a test has a time limit, the user will be allowed additional time to complete the test. This is the container for the user's addition time preferences.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            time-multiplier XOR [1..1] Float Providing the additional testing time as a multiplier of the set time.
                            fixed-minutes XOR [1..1] Integer Providing the additional testing time as an additional number of minutes.
                            unlimited XOR [1..1] Enumeration (Value: active) Providing the additional testing time as an unlimited time.
                    line-reader [0..1] Object Describes the preferences for the use of a line reader.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            highlight-color [0..1] String The highlight color to be used by the display when identifying the position of the line reader.
                    magnification [0..1] Object Describes the use of the magnification settings for the user.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            all-content XOR [0..1] Object This is the default zoom value for all content.
                                    zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                    value [1..1] Enumeration (Value: active) This is the default zoom value for all content.
                            select-magnification XOR [0..1] Object This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.
                                    text [0..1] Object The magnification value for text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for text display.
                                    non-text [0..1] Object The magnification value for non-text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for non-text display.
                    spoken [0..1] Object Describes the settings for use of Speech devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            reading-type [1..1] Enumeration Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                            restriction-type [0..*] Array [ Union(RestrictionType) ] Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                            speech-rate [0..1] Integer Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.
                            pitch [0..1] Float Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            volume [0..1] Float Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            link-indication [1..1] Enumeration The nature of handling embedded links. This is based upon an enumerated vocabulary.
                            typing-echo [1..1] Enumeration Unit of reading to be spoken. This is an enumerated vocabulary.
                    tactile [0..1] Object Describes the settings for use of tactile devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    braille [0..1] Object Describes the settings for use of Braille devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [0..1] String The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.
                            delivery-mode [0..1] Enumeration The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                            grade [0..1] Enumeration The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                            braille-type [0..1] Union(BrailleType) The type of Braille to be used.
                            math-type [0..1] Union(MathType) The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    answer-masking [0..1] Object Various types of content masking are possible to limit the amount of content rendered when an item is first presented. This is the container for the user's preferred masking settings for limiting the range of shown answers.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyboard-directions [0..1] Object Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-directions [0..1] Object Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    long-description [0..1] Object An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            hide-visually [0..1] Boolean Defines whether or not the long description is hidden from view as a default setting.
                    captions [0..1] Object Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    environment [0..1] Object The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            description [0..1] String A human-readable description of the accessibility support environment.
                            medical [0..1] String A human-readable description of the available medical support.
                            software [0..1] String A human-readable description of the available accessibility software.
                            hardware [0..1] String A human-readable description of the available accessibility hardware.
                            breaks [0..1] Boolean A human-readable description of the available breaks i.e. moments away for the activity itself.
                    transcript [0..1] Object A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    alternative-text [0..1] Object Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    audio-description [0..1] Object Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    high-contrast [0..1] Object A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    layout-single-column [0..1] Object The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    text-appearance [0..1] Object This is used to define the set of characteristics that describe the appearance of displayed text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            color-theme [0..1] Union(ColorThemeExtEnum) The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                            background-color [0..1] String Background color in an interface that is displaying text.
                            font-color [0..1] String Font color in an interface that is displaying text.
                            font-size [0..1] Float Size of a font. This value is in points.
                            font-face [0..1] Object The font face. This is an enumerated vocabulary.
                                    font-name [0..*] Array [ String ] The name of the font to be used for text display.
                                    generic-font-face [1..1] Enumeration The generic font face to be use for text. This is based upon an enumerated vocabulary.
                            line-spacing [0..1] Float The line spacing.
                            line-height [0..1] Float The line height.
                            letter-spacing [0..1] Float The spacing between letters. This value is in points.
                            uniform-font-sizing [0..1] Enumeration (Value: active) Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.
                            word-spacing [0..1] Float The spacing between words. This value is in points.
                            word-wrapping [0..1] Enumeration (Value: active) Defines if word wrapping is to be used. If present then word wrapping is to be used.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the TextAppearance class. The form of the extension is dependent on the type of binding.
                    calculator-on-screen [0..1] Object The presence of this attribute makes available, on screen, the calculator tool.
                            calculator-type [0..1] Union(CalculatorType) The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                            value [1..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the calculator tool.
                    dictionary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the dictionary tool.
                    glossary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the glossary tool.
                    thesaurus-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the thesaurus tool.
                    homophone-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the homophone checker tool.
                    note-taking-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the note taking tool.
                    visual-organizer-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the visual organizer tool.
                    outliner-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the outliner tool.
                    peer-interaction-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the peer interaction tool.
                    spell-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the spell checker tool.
                    activate-at-initialization-set [0..1] Object This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    activate-as-option-set [0..1] Object This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    prohibit-set [0..1] Object This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.5b.

Code 7.10.1 - JSON payload example for "200" response messages for a "getAfAPNPRecordForUserForActivity" operation.
    {
        "access-for-all-pnp-record" : {
            "personSourcedId" : {
                "value" : "..NormalizedString..",
                "source-system" : "..NormalizedString.."
            },
            "activitySourcedId" : "..NormalizedString..",
            "access-for-all-pnp" : {
                "access-mode-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-type-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "at-interoperable" : "..Boolean..",
                "educational-complexity-of-adaptation" : "..select from Union..",
                "hazard-avoidance" : [ "..select from Union..", ..., "..select from Union.." ],
                "input-requirements" : "..select from Union..",
                "language-of-adaptation" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "language-of-interface" : [
                    {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    {...},
                    {...}
                ],
                "adaptation-detail-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "adaptation-media-required" : [
                    {
                        "existing-access-mode" : "..select from Union..",
                        "adaptation-request" : "..select from Union.."
                    },
                    {...},
                    {...}
                ],
                "educational-level-of-adaptation" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "linguistic-guidance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-emphasis" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyword-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "simplified-language-portions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "simplified-graphics" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "item-translation" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "sign-language" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code).."
                },
                "encouragement" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-testing-time" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "time-multiplier" : ..Number(Float)..,
                    "fixed-minutes" : ..Number(Integer)..,
                    "unlimited" : "..Fixed value=active.."
                },
                "line-reader" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "highlight-color" : "..String.."
                },
                "magnification" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "all-content" : {
                        "value" : "..Fixed value=active..",
                        "zoom-amount" : ..Number(Float)..
                    },
                    "select-magnification" : {
                        "text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        },
                        "non-text" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        }
                    }
                },
                "spoken" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "reading-type" : "screen-reader"|"computer-read-aloud",
                    "restriction-type" : [ "..select from Union..", ..., "..select from Union.." ],
                    "speech-rate" : ..Number(Integer)..,
                    "pitch" : ..Number(Float)..,
                    "volume" : ..Number(Float)..,
                    "link-indication" : "speak-link"|"different-voice"|"sound-effect"|"none",
                    "typing-echo" : "characters"|"words"|"characters-and-words"|"none"
                },
                "tactile" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "braille" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "language" : "..String(Language Code)..",
                    "delivery-mode" : "refreshable"|"embossed",
                    "grade" : "1"|"2"|"3",
                    "braille-type" : "..select from Union..",
                    "math-type" : "..select from Union.."
                },
                "answer-masking" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "keyboard-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "additional-directions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "long-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "hide-visually" : "..Boolean.."
                },
                "captions" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "environment" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "description" : "..NormalizedString..",
                    "medical" : "..NormalizedString..",
                    "software" : "..NormalizedString..",
                    "hardware" : "..NormalizedString..",
                    "breaks" : "..Boolean.."
                },
                "transcript" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "alternative-text" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "audio-description" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "high-contrast" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "layout-single-column" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active.."
                },
                "text-appearance" : {
                    "replace-access-mode-auditory" : "..Fixed value=active..",
                    "replace-access-mode-color" : "..Fixed value=active..",
                    "replace-access-mode-item-size" : "..Fixed value=active..",
                    "replace-access-mode-olfactory" : "..Fixed value=active..",
                    "replace-access-mode-orientation" : "..Fixed value=active..",
                    "replace-access-mode-position" : "..Fixed value=active..",
                    "replace-access-mode-tactile" : "..Fixed value=active..",
                    "replace-access-mode-text-on-image" : "..Fixed value=active..",
                    "replace-access-mode-textual" : "..Fixed value=active..",
                    "replace-access-mode-visual" : "..Fixed value=active..",
                    "color-theme" : "..select from Union..",
                    "background-color" : "..String..",
                    "font-color" : "..String..",
                    "font-size" : ..Number(Float)..,
                    "font-face" : {
                        "font-name" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                        "generic-font-face" : "serif"|"sans serif"|"monospaced"|"cursive"|"fantasy"
                    },
                    "line-spacing" : ..Number(Float)..,
                    "line-height" : ..Number(Float)..,
                    "letter-spacing" : ..Number(Float)..,
                    "uniform-font-sizing" : "..Fixed value=active..",
                    "word-spacing" : ..Number(Float)..,
                    "word-wrapping" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "calculator-on-screen" : {
                    "value" : "..Fixed value=active..",
                    "calculator-type" : "..select from Union.."
                },
                "dictionary-on-screen" : "..Fixed value=active..",
                "glossary-on-screen" : "..Fixed value=active..",
                "thesaurus-on-screen" : "..Fixed value=active..",
                "homophone-checker-on-screen" : "..Fixed value=active..",
                "note-taking-on-screen" : "..Fixed value=active..",
                "visual-organizer-on-screen" : "..Fixed value=active..",
                "outliner-on-screen" : "..Fixed value=active..",
                "peer-interaction-on-screen" : "..Fixed value=active..",
                "spell-checker-on-screen" : "..Fixed value=active..",
                "activate-at-initialization-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "activate-as-option-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "prohibit-set" : {
                    "linguistic-guidance" : "..Fixed value=active..",
                    "keyword-emphasis" : "..Fixed value=active..",
                    "keyword-translation" : "..Fixed value=active..",
                    "simplified-language-portions" : "..Fixed value=active..",
                    "simplified-graphics" : "..Fixed value=active..",
                    "item-translation" : "..Fixed value=active..",
                    "sign-language" : "..Fixed value=active..",
                    "encouragement" : "..Fixed value=active..",
                    "additional-testing-time" : "..Fixed value=active..",
                    "line-reader" : "..Fixed value=active..",
                    "magnification" : "..Fixed value=active..",
                    "spoken" : "..Fixed value=active..",
                    "tactile" : "..Fixed value=active..",
                    "braille" : "..Fixed value=active..",
                    "answer-masking" : "..Fixed value=active..",
                    "keyboard-directions" : "..Fixed value=active..",
                    "additional-directions" : "..Fixed value=active..",
                    "long-description" : "..Fixed value=active..",
                    "captions" : "..Fixed value=active..",
                    "transcript" : "..Fixed value=active..",
                    "alternative-text" : "..Fixed value=active..",
                    "audio-description" : "..Fixed value=active..",
                    "high-contrast" : "..Fixed value=active..",
                    "input-requirements" : "..Fixed value=active..",
                    "language-of-interface" : "..Fixed value=active..",
                    "layout-single-column" : "..Fixed value=active..",
                    "text-appearance" : "..Fixed value=active..",
                    "calculator-on-screen" : "..Fixed value=active..",
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "..permitted extension point.." : "..user defined value.."
                },
                "..permitted extension point.." : "..user defined value.."
            }
        }
    }
                        

Privacy Implications for the Response Payload

In the above example the following attributes contain data that has privacy implications:

7.10.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.10.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordForUserForActivity" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.5c.

Code 7.10.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordForUserForActivity" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.11 "getAfAPNPRecordSetForUser" Request Payload

There is no payload for this request.

7.12 "getAfAPNPRecordSetForUser" Response Payloads

7.12.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 7.12.1 - Tabular representation of the JSON payload for "200" response messages for a "getAfAPNPRecordSetForUser" operation.
Property Name Multiplicity JSON Data-type Description
    access-for-all-pnp-record [0..*] Array [ Object ] This is used to contain the description of each of the individual AfA PNP Records.
            personSourcedId [1..1] Object This is the unique identifier for the person who owns the PNP record.
                    source-system [1..1] String The source system that was responsible for the allocation of the 'sourcedId' for the Person.
                    value [1..1] String This is the unique identifier for the person who owns the PNP record.
            activitySourcedId [1..1] String This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.
            access-for-all-pnp [1..1] Object This is actual AfA PNP Record instance.
                    access-mode-required [0..*] Array [ Object ] Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    adaptation-type-required [0..*] Array [ Object ] Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationType vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationTypeValue) A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    at-interoperable [0..1] Boolean A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible. Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system. The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.
                    educational-complexity-of-adaptation [0..1] Union(EducationalComplexityValueExtEnum) A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    hazard-avoidance [0..*] Array [ Union(HazardValueExtEnum) ] A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    input-requirements [0..1] Union(ControlFlexibilityValueExtEnum) Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    language-of-adaptation [0..*] Array [ Object ] A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    language-of-interface [0..*] Array [ Object ] A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    adaptation-detail-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationDetail vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationDetailValue) A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    adaptation-media-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationMedia vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationMediaTypeValue) A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    educational-level-of-adaptation [0..*] Array [ String ] A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.
                    linguistic-guidance [0..1] Object Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-emphasis [0..1] Object Certain words are designated in the content as key words. Programs should designate how they are to be emphasized. This value is used to define the corresponding user preference setting.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-translation [0..1] Object Certain specific words would have translations available to users who need some assistance with difficult or important words in the content. The user profile should specify the language requested and the content would supply translation for the required languages. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    simplified-language-portions [0..1] Object An entirely different version of a question may be given to a user using simpler language. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    simplified-graphics [0..1] Object An entirely different version of a question may be given to a user using simpler graphics. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    item-translation [0..1] Object An alternate item is made and the user exposed to the alternate language version. The Item information must contain which specific language it supports. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    sign-language [0..1] Object Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    encouragement [0..1] Object Some users may benefit from receiving expressions of encouragement as they work on the Test/Item. This is the container for the user preferences specific to the provision of expressions of encouragement.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-testing-time [0..1] Object If a test has a time limit, the user will be allowed additional time to complete the test. This is the container for the user's addition time preferences.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            time-multiplier XOR [1..1] Float Providing the additional testing time as a multiplier of the set time.
                            fixed-minutes XOR [1..1] Integer Providing the additional testing time as an additional number of minutes.
                            unlimited XOR [1..1] Enumeration (Value: active) Providing the additional testing time as an unlimited time.
                    line-reader [0..1] Object Describes the preferences for the use of a line reader.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            highlight-color [0..1] String The highlight color to be used by the display when identifying the position of the line reader.
                    magnification [0..1] Object Describes the use of the magnification settings for the user.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            all-content XOR [0..1] Object This is the default zoom value for all content.
                                    zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                    value [1..1] Enumeration (Value: active) This is the default zoom value for all content.
                            select-magnification XOR [0..1] Object This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.
                                    text [0..1] Object The magnification value for text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for text display.
                                    non-text [0..1] Object The magnification value for non-text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for non-text display.
                    spoken [0..1] Object Describes the settings for use of Speech devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            reading-type [1..1] Enumeration Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                            restriction-type [0..*] Array [ Union(RestrictionType) ] Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                            speech-rate [0..1] Integer Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.
                            pitch [0..1] Float Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            volume [0..1] Float Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            link-indication [1..1] Enumeration The nature of handling embedded links. This is based upon an enumerated vocabulary.
                            typing-echo [1..1] Enumeration Unit of reading to be spoken. This is an enumerated vocabulary.
                    tactile [0..1] Object Describes the settings for use of tactile devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    braille [0..1] Object Describes the settings for use of Braille devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [0..1] String The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.
                            delivery-mode [0..1] Enumeration The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                            grade [0..1] Enumeration The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                            braille-type [0..1] Union(BrailleType) The type of Braille to be used.
                            math-type [0..1] Union(MathType) The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    answer-masking [0..1] Object Various types of content masking are possible to limit the amount of content rendered when an item is first presented. This is the container for the user's preferred masking settings for limiting the range of shown answers.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyboard-directions [0..1] Object Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-directions [0..1] Object Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    long-description [0..1] Object An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            hide-visually [0..1] Boolean Defines whether or not the long description is hidden from view as a default setting.
                    captions [0..1] Object Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    environment [0..1] Object The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            description [0..1] String A human-readable description of the accessibility support environment.
                            medical [0..1] String A human-readable description of the available medical support.
                            software [0..1] String A human-readable description of the available accessibility software.
                            hardware [0..1] String A human-readable description of the available accessibility hardware.
                            breaks [0..1] Boolean A human-readable description of the available breaks i.e. moments away for the activity itself.
                    transcript [0..1] Object A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    alternative-text [0..1] Object Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    audio-description [0..1] Object Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    high-contrast [0..1] Object A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    layout-single-column [0..1] Object The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    text-appearance [0..1] Object This is used to define the set of characteristics that describe the appearance of displayed text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            color-theme [0..1] Union(ColorThemeExtEnum) The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                            background-color [0..1] String Background color in an interface that is displaying text.
                            font-color [0..1] String Font color in an interface that is displaying text.
                            font-size [0..1] Float Size of a font. This value is in points.
                            font-face [0..1] Object The font face. This is an enumerated vocabulary.
                                    font-name [0..*] Array [ String ] The name of the font to be used for text display.
                                    generic-font-face [1..1] Enumeration The generic font face to be use for text. This is based upon an enumerated vocabulary.
                            line-spacing [0..1] Float The line spacing.
                            line-height [0..1] Float The line height.
                            letter-spacing [0..1] Float The spacing between letters. This value is in points.
                            uniform-font-sizing [0..1] Enumeration (Value: active) Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.
                            word-spacing [0..1] Float The spacing between words. This value is in points.
                            word-wrapping [0..1] Enumeration (Value: active) Defines if word wrapping is to be used. If present then word wrapping is to be used.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the TextAppearance class. The form of the extension is dependent on the type of binding.
                    calculator-on-screen [0..1] Object The presence of this attribute makes available, on screen, the calculator tool.
                            calculator-type [0..1] Union(CalculatorType) The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                            value [1..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the calculator tool.
                    dictionary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the dictionary tool.
                    glossary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the glossary tool.
                    thesaurus-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the thesaurus tool.
                    homophone-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the homophone checker tool.
                    note-taking-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the note taking tool.
                    visual-organizer-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the visual organizer tool.
                    outliner-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the outliner tool.
                    peer-interaction-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the peer interaction tool.
                    spell-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the spell checker tool.
                    activate-at-initialization-set [0..1] Object This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    activate-as-option-set [0..1] Object This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    prohibit-set [0..1] Object This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.6b.

Code 7.12.1 - JSON payload example for "200" response messages for a "getAfAPNPRecordSetForUser" operation.
    {
        "access-for-all-pnp-record" : [
            {
                "personSourcedId" : {
                    "value" : "..NormalizedString..",
                    "source-system" : "..NormalizedString.."
                },
                "activitySourcedId" : "..NormalizedString..",
                "access-for-all-pnp" : {
                    "access-mode-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-type-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "at-interoperable" : "..Boolean..",
                    "educational-complexity-of-adaptation" : "..select from Union..",
                    "hazard-avoidance" : [ "..select from Union..", ..., "..select from Union.." ],
                    "input-requirements" : "..select from Union..",
                    "language-of-adaptation" : [
                        {
                            "replace-access-mode-auditory" : "..Fixed value=active..",
                            "replace-access-mode-color" : "..Fixed value=active..",
                            "replace-access-mode-item-size" : "..Fixed value=active..",
                            "replace-access-mode-olfactory" : "..Fixed value=active..",
                            "replace-access-mode-orientation" : "..Fixed value=active..",
                            "replace-access-mode-position" : "..Fixed value=active..",
                            "replace-access-mode-tactile" : "..Fixed value=active..",
                            "replace-access-mode-text-on-image" : "..Fixed value=active..",
                            "replace-access-mode-textual" : "..Fixed value=active..",
                            "replace-access-mode-visual" : "..Fixed value=active..",
                            "language" : "..String(Language Code).."
                        },
                        {...},
                        {...}
                    ],
                    "language-of-interface" : [
                        {
                            "replace-access-mode-auditory" : "..Fixed value=active..",
                            "replace-access-mode-color" : "..Fixed value=active..",
                            "replace-access-mode-item-size" : "..Fixed value=active..",
                            "replace-access-mode-olfactory" : "..Fixed value=active..",
                            "replace-access-mode-orientation" : "..Fixed value=active..",
                            "replace-access-mode-position" : "..Fixed value=active..",
                            "replace-access-mode-tactile" : "..Fixed value=active..",
                            "replace-access-mode-text-on-image" : "..Fixed value=active..",
                            "replace-access-mode-textual" : "..Fixed value=active..",
                            "replace-access-mode-visual" : "..Fixed value=active..",
                            "language" : "..String(Language Code).."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-detail-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-media-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "educational-level-of-adaptation" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                    "linguistic-guidance" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyword-emphasis" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyword-translation" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "simplified-language-portions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "simplified-graphics" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "item-translation" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "sign-language" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "encouragement" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "additional-testing-time" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "time-multiplier" : ..Number(Float)..,
                        "fixed-minutes" : ..Number(Integer)..,
                        "unlimited" : "..Fixed value=active.."
                    },
                    "line-reader" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "highlight-color" : "..String.."
                    },
                    "magnification" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "all-content" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        },
                        "select-magnification" : {
                            "text" : {
                                "value" : "..Fixed value=active..",
                                "zoom-amount" : ..Number(Float)..
                            },
                            "non-text" : {
                                "value" : "..Fixed value=active..",
                                "zoom-amount" : ..Number(Float)..
                            }
                        }
                    },
                    "spoken" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "reading-type" : "screen-reader"|"computer-read-aloud",
                        "restriction-type" : [ "..select from Union..", ..., "..select from Union.." ],
                        "speech-rate" : ..Number(Integer)..,
                        "pitch" : ..Number(Float)..,
                        "volume" : ..Number(Float)..,
                        "link-indication" : "speak-link"|"different-voice"|"sound-effect"|"none",
                        "typing-echo" : "characters"|"words"|"characters-and-words"|"none"
                    },
                    "tactile" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "braille" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code)..",
                        "delivery-mode" : "refreshable"|"embossed",
                        "grade" : "1"|"2"|"3",
                        "braille-type" : "..select from Union..",
                        "math-type" : "..select from Union.."
                    },
                    "answer-masking" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyboard-directions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "additional-directions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "long-description" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "hide-visually" : "..Boolean.."
                    },
                    "captions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "environment" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "description" : "..NormalizedString..",
                        "medical" : "..NormalizedString..",
                        "software" : "..NormalizedString..",
                        "hardware" : "..NormalizedString..",
                        "breaks" : "..Boolean.."
                    },
                    "transcript" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "alternative-text" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "audio-description" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "high-contrast" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "layout-single-column" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "text-appearance" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "color-theme" : "..select from Union..",
                        "background-color" : "..String..",
                        "font-color" : "..String..",
                        "font-size" : ..Number(Float)..,
                        "font-face" : {
                            "font-name" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                            "generic-font-face" : "serif"|"sans serif"|"monospaced"|"cursive"|"fantasy"
                        },
                        "line-spacing" : ..Number(Float)..,
                        "line-height" : ..Number(Float)..,
                        "letter-spacing" : ..Number(Float)..,
                        "uniform-font-sizing" : "..Fixed value=active..",
                        "word-spacing" : ..Number(Float)..,
                        "word-wrapping" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "calculator-on-screen" : {
                        "value" : "..Fixed value=active..",
                        "calculator-type" : "..select from Union.."
                    },
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "activate-at-initialization-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "activate-as-option-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "prohibit-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "..permitted extension point.." : "..user defined value.."
                }
            },
            {...},
            {...}
        ]
    }
                        

Privacy Implications for the Response Payload

In the above example the following attributes contain data that has privacy implications:

7.12.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.12.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordSetForUser" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.6c.

Code 7.12.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAfAPNPRecordSetForUser" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

7.13 "getAllAfAPNPRecords" Request Payload

There is no payload for this request.

7.14 "getAllAfAPNPRecords" Response Payloads

7.14.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 7.14.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllAfAPNPRecords" operation.
Property Name Multiplicity JSON Data-type Description
    access-for-all-pnp-record [0..*] Array [ Object ] This is used to contain the description of each of the individual AfA PNP Records.
            personSourcedId [1..1] Object This is the unique identifier for the person who owns the PNP record.
                    source-system [1..1] String The source system that was responsible for the allocation of the 'sourcedId' for the Person.
                    value [1..1] String This is the unique identifier for the person who owns the PNP record.
            activitySourcedId [1..1] String This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.
            access-for-all-pnp [1..1] Object This is actual AfA PNP Record instance.
                    access-mode-required [0..*] Array [ Object ] Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AccessModeValue) A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    adaptation-type-required [0..*] Array [ Object ] Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationType vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationTypeValue) A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    at-interoperable [0..1] Boolean A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible. Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system. The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.
                    educational-complexity-of-adaptation [0..1] Union(EducationalComplexityValueExtEnum) A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    hazard-avoidance [0..*] Array [ Union(HazardValueExtEnum) ] A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    input-requirements [0..1] Union(ControlFlexibilityValueExtEnum) Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    language-of-adaptation [0..*] Array [ Object ] A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    language-of-interface [0..*] Array [ Object ] A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    adaptation-detail-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationDetail vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationDetailValue) A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    adaptation-media-required [0..*] Array [ Object ] This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                            existing-access-mode [1..1] Union(AccessModeValue) A value, from the AdaptationMedia vocabulary, for the existing access mode.
                            adaptation-request [1..1] Union(AdaptationMediaTypeValue) A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    educational-level-of-adaptation [0..*] Array [ String ] A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.
                    linguistic-guidance [0..1] Object Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-emphasis [0..1] Object Certain words are designated in the content as key words. Programs should designate how they are to be emphasized. This value is used to define the corresponding user preference setting.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyword-translation [0..1] Object Certain specific words would have translations available to users who need some assistance with difficult or important words in the content. The user profile should specify the language requested and the content would supply translation for the required languages. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    simplified-language-portions [0..1] Object An entirely different version of a question may be given to a user using simpler language. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    simplified-graphics [0..1] Object An entirely different version of a question may be given to a user using simpler graphics. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    item-translation [0..1] Object An alternate item is made and the user exposed to the alternate language version. The Item information must contain which specific language it supports. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    sign-language [0..1] Object Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item. This value is used to define the corresponding user preference settings.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [1..1] String Identification of the language. The permitted value is based upon [RFC 3066].
                    encouragement [0..1] Object Some users may benefit from receiving expressions of encouragement as they work on the Test/Item. This is the container for the user preferences specific to the provision of expressions of encouragement.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-testing-time [0..1] Object If a test has a time limit, the user will be allowed additional time to complete the test. This is the container for the user's addition time preferences.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            time-multiplier XOR [1..1] Float Providing the additional testing time as a multiplier of the set time.
                            fixed-minutes XOR [1..1] Integer Providing the additional testing time as an additional number of minutes.
                            unlimited XOR [1..1] Enumeration (Value: active) Providing the additional testing time as an unlimited time.
                    line-reader [0..1] Object Describes the preferences for the use of a line reader.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            highlight-color [0..1] String The highlight color to be used by the display when identifying the position of the line reader.
                    magnification [0..1] Object Describes the use of the magnification settings for the user.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            all-content XOR [0..1] Object This is the default zoom value for all content.
                                    zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                    value [1..1] Enumeration (Value: active) This is the default zoom value for all content.
                            select-magnification XOR [0..1] Object This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.
                                    text [0..1] Object The magnification value for text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for text display.
                                    non-text [0..1] Object The magnification value for non-text display.
                                            zoom-amount [0..1] Float The value for the zoom amount as a float number.
                                            value [1..1] Enumeration (Value: active) The magnification value for non-text display.
                    spoken [0..1] Object Describes the settings for use of Speech devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            reading-type [1..1] Enumeration Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                            restriction-type [0..*] Array [ Union(RestrictionType) ] Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                            speech-rate [0..1] Integer Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.
                            pitch [0..1] Float Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            volume [0..1] Float Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.
                            link-indication [1..1] Enumeration The nature of handling embedded links. This is based upon an enumerated vocabulary.
                            typing-echo [1..1] Enumeration Unit of reading to be spoken. This is an enumerated vocabulary.
                    tactile [0..1] Object Describes the settings for use of tactile devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    braille [0..1] Object Describes the settings for use of Braille devices.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            language [0..1] String The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.
                            delivery-mode [0..1] Enumeration The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                            grade [0..1] Enumeration The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                            braille-type [0..1] Union(BrailleType) The type of Braille to be used.
                            math-type [0..1] Union(MathType) The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    answer-masking [0..1] Object Various types of content masking are possible to limit the amount of content rendered when an item is first presented. This is the container for the user's preferred masking settings for limiting the range of shown answers.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    keyboard-directions [0..1] Object Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    additional-directions [0..1] Object Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    long-description [0..1] Object An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            hide-visually [0..1] Boolean Defines whether or not the long description is hidden from view as a default setting.
                    captions [0..1] Object Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    environment [0..1] Object The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            description [0..1] String A human-readable description of the accessibility support environment.
                            medical [0..1] String A human-readable description of the available medical support.
                            software [0..1] String A human-readable description of the available accessibility software.
                            hardware [0..1] String A human-readable description of the available accessibility hardware.
                            breaks [0..1] Boolean A human-readable description of the available breaks i.e. moments away for the activity itself.
                    transcript [0..1] Object A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    alternative-text [0..1] Object Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    audio-description [0..1] Object Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    high-contrast [0..1] Object A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    layout-single-column [0..1] Object The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                    text-appearance [0..1] Object This is used to define the set of characteristics that describe the appearance of displayed text.
                            replace-access-mode-auditory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.
                            replace-access-mode-color [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-item-size [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-olfactory [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-orientation [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-position [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-tactile [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-text-on-image [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-textual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.
                            replace-access-mode-visual [0..1] Enumeration (Value: active) The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.
                            color-theme [0..1] Union(ColorThemeExtEnum) The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                            background-color [0..1] String Background color in an interface that is displaying text.
                            font-color [0..1] String Font color in an interface that is displaying text.
                            font-size [0..1] Float Size of a font. This value is in points.
                            font-face [0..1] Object The font face. This is an enumerated vocabulary.
                                    font-name [0..*] Array [ String ] The name of the font to be used for text display.
                                    generic-font-face [1..1] Enumeration The generic font face to be use for text. This is based upon an enumerated vocabulary.
                            line-spacing [0..1] Float The line spacing.
                            line-height [0..1] Float The line height.
                            letter-spacing [0..1] Float The spacing between letters. This value is in points.
                            uniform-font-sizing [0..1] Enumeration (Value: active) Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.
                            word-spacing [0..1] Float The spacing between words. This value is in points.
                            word-wrapping [0..1] Enumeration (Value: active) Defines if word wrapping is to be used. If present then word wrapping is to be used.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the TextAppearance class. The form of the extension is dependent on the type of binding.
                    calculator-on-screen [0..1] Object The presence of this attribute makes available, on screen, the calculator tool.
                            calculator-type [0..1] Union(CalculatorType) The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                            value [1..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the calculator tool.
                    dictionary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the dictionary tool.
                    glossary-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the glossary tool.
                    thesaurus-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the thesaurus tool.
                    homophone-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the homophone checker tool.
                    note-taking-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the note taking tool.
                    visual-organizer-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the visual organizer tool.
                    outliner-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the outliner tool.
                    peer-interaction-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the peer interaction tool.
                    spell-checker-on-screen [0..1] Enumeration (Value: active) The presence of this attribute makes available, on screen, the spell checker tool.
                    activate-at-initialization-set [0..1] Object This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    activate-as-option-set [0..1] Object This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    prohibit-set [0..1] Object This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.
                            linguistic-guidance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.
                            keyword-emphasis [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.
                            keyword-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.
                            simplified-language-portions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.
                            simplified-graphics [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.
                            item-translation [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.
                            sign-language [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.
                            encouragement [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.
                            additional-testing-time [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.
                            line-reader [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.
                            magnification [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.
                            spoken [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.
                            tactile [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.
                            braille [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'braille' preferences are to be established appropriately.
                            answer-masking [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.
                            keyboard-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.
                            additional-directions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.
                            long-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.
                            captions [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'captions' preferences are to be established appropriately.
                            transcript [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.
                            alternative-text [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.
                            audio-description [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.
                            high-contrast [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.
                            input-requirements [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.
                            language-of-interface [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.
                            layout-single-column [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.
                            text-appearance [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.
                            calculator-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.
                            dictionary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.
                            glossary-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.
                            thesaurus-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.
                            homophone-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.
                            note-taking-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.
                            visual-organizer-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.
                            outliner-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.
                            peer-interaction-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.
                            spell-checker-on-screen [0..1] Enumeration (Value: active) Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.
                            extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.
                    extensions [0..*] Set of Proprietary Properties This is a placeholder. It informs bindings of this Information Model as to the valid locations for the inclusion that extend the parent class. The form of the extension is dependent on the type of binding.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7b.

Code 7.14.1 - JSON payload example for "200" response messages for a "getAllAfAPNPRecords" operation.
    {
        "access-for-all-pnp-record" : [
            {
                "personSourcedId" : {
                    "value" : "..NormalizedString..",
                    "source-system" : "..NormalizedString.."
                },
                "activitySourcedId" : "..NormalizedString..",
                "access-for-all-pnp" : {
                    "access-mode-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-type-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "at-interoperable" : "..Boolean..",
                    "educational-complexity-of-adaptation" : "..select from Union..",
                    "hazard-avoidance" : [ "..select from Union..", ..., "..select from Union.." ],
                    "input-requirements" : "..select from Union..",
                    "language-of-adaptation" : [
                        {
                            "replace-access-mode-auditory" : "..Fixed value=active..",
                            "replace-access-mode-color" : "..Fixed value=active..",
                            "replace-access-mode-item-size" : "..Fixed value=active..",
                            "replace-access-mode-olfactory" : "..Fixed value=active..",
                            "replace-access-mode-orientation" : "..Fixed value=active..",
                            "replace-access-mode-position" : "..Fixed value=active..",
                            "replace-access-mode-tactile" : "..Fixed value=active..",
                            "replace-access-mode-text-on-image" : "..Fixed value=active..",
                            "replace-access-mode-textual" : "..Fixed value=active..",
                            "replace-access-mode-visual" : "..Fixed value=active..",
                            "language" : "..String(Language Code).."
                        },
                        {...},
                        {...}
                    ],
                    "language-of-interface" : [
                        {
                            "replace-access-mode-auditory" : "..Fixed value=active..",
                            "replace-access-mode-color" : "..Fixed value=active..",
                            "replace-access-mode-item-size" : "..Fixed value=active..",
                            "replace-access-mode-olfactory" : "..Fixed value=active..",
                            "replace-access-mode-orientation" : "..Fixed value=active..",
                            "replace-access-mode-position" : "..Fixed value=active..",
                            "replace-access-mode-tactile" : "..Fixed value=active..",
                            "replace-access-mode-text-on-image" : "..Fixed value=active..",
                            "replace-access-mode-textual" : "..Fixed value=active..",
                            "replace-access-mode-visual" : "..Fixed value=active..",
                            "language" : "..String(Language Code).."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-detail-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "adaptation-media-required" : [
                        {
                            "existing-access-mode" : "..select from Union..",
                            "adaptation-request" : "..select from Union.."
                        },
                        {...},
                        {...}
                    ],
                    "educational-level-of-adaptation" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                    "linguistic-guidance" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyword-emphasis" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyword-translation" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "simplified-language-portions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "simplified-graphics" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "item-translation" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "sign-language" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code).."
                    },
                    "encouragement" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "additional-testing-time" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "time-multiplier" : ..Number(Float)..,
                        "fixed-minutes" : ..Number(Integer)..,
                        "unlimited" : "..Fixed value=active.."
                    },
                    "line-reader" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "highlight-color" : "..String.."
                    },
                    "magnification" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "all-content" : {
                            "value" : "..Fixed value=active..",
                            "zoom-amount" : ..Number(Float)..
                        },
                        "select-magnification" : {
                            "text" : {
                                "value" : "..Fixed value=active..",
                                "zoom-amount" : ..Number(Float)..
                            },
                            "non-text" : {
                                "value" : "..Fixed value=active..",
                                "zoom-amount" : ..Number(Float)..
                            }
                        }
                    },
                    "spoken" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "reading-type" : "screen-reader"|"computer-read-aloud",
                        "restriction-type" : [ "..select from Union..", ..., "..select from Union.." ],
                        "speech-rate" : ..Number(Integer)..,
                        "pitch" : ..Number(Float)..,
                        "volume" : ..Number(Float)..,
                        "link-indication" : "speak-link"|"different-voice"|"sound-effect"|"none",
                        "typing-echo" : "characters"|"words"|"characters-and-words"|"none"
                    },
                    "tactile" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "braille" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "language" : "..String(Language Code)..",
                        "delivery-mode" : "refreshable"|"embossed",
                        "grade" : "1"|"2"|"3",
                        "braille-type" : "..select from Union..",
                        "math-type" : "..select from Union.."
                    },
                    "answer-masking" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "keyboard-directions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "additional-directions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "long-description" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "hide-visually" : "..Boolean.."
                    },
                    "captions" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "environment" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "description" : "..NormalizedString..",
                        "medical" : "..NormalizedString..",
                        "software" : "..NormalizedString..",
                        "hardware" : "..NormalizedString..",
                        "breaks" : "..Boolean.."
                    },
                    "transcript" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "alternative-text" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "audio-description" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "high-contrast" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "layout-single-column" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active.."
                    },
                    "text-appearance" : {
                        "replace-access-mode-auditory" : "..Fixed value=active..",
                        "replace-access-mode-color" : "..Fixed value=active..",
                        "replace-access-mode-item-size" : "..Fixed value=active..",
                        "replace-access-mode-olfactory" : "..Fixed value=active..",
                        "replace-access-mode-orientation" : "..Fixed value=active..",
                        "replace-access-mode-position" : "..Fixed value=active..",
                        "replace-access-mode-tactile" : "..Fixed value=active..",
                        "replace-access-mode-text-on-image" : "..Fixed value=active..",
                        "replace-access-mode-textual" : "..Fixed value=active..",
                        "replace-access-mode-visual" : "..Fixed value=active..",
                        "color-theme" : "..select from Union..",
                        "background-color" : "..String..",
                        "font-color" : "..String..",
                        "font-size" : ..Number(Float)..,
                        "font-face" : {
                            "font-name" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                            "generic-font-face" : "serif"|"sans serif"|"monospaced"|"cursive"|"fantasy"
                        },
                        "line-spacing" : ..Number(Float)..,
                        "line-height" : ..Number(Float)..,
                        "letter-spacing" : ..Number(Float)..,
                        "uniform-font-sizing" : "..Fixed value=active..",
                        "word-spacing" : ..Number(Float)..,
                        "word-wrapping" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "calculator-on-screen" : {
                        "value" : "..Fixed value=active..",
                        "calculator-type" : "..select from Union.."
                    },
                    "dictionary-on-screen" : "..Fixed value=active..",
                    "glossary-on-screen" : "..Fixed value=active..",
                    "thesaurus-on-screen" : "..Fixed value=active..",
                    "homophone-checker-on-screen" : "..Fixed value=active..",
                    "note-taking-on-screen" : "..Fixed value=active..",
                    "visual-organizer-on-screen" : "..Fixed value=active..",
                    "outliner-on-screen" : "..Fixed value=active..",
                    "peer-interaction-on-screen" : "..Fixed value=active..",
                    "spell-checker-on-screen" : "..Fixed value=active..",
                    "activate-at-initialization-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "activate-as-option-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "prohibit-set" : {
                        "linguistic-guidance" : "..Fixed value=active..",
                        "keyword-emphasis" : "..Fixed value=active..",
                        "keyword-translation" : "..Fixed value=active..",
                        "simplified-language-portions" : "..Fixed value=active..",
                        "simplified-graphics" : "..Fixed value=active..",
                        "item-translation" : "..Fixed value=active..",
                        "sign-language" : "..Fixed value=active..",
                        "encouragement" : "..Fixed value=active..",
                        "additional-testing-time" : "..Fixed value=active..",
                        "line-reader" : "..Fixed value=active..",
                        "magnification" : "..Fixed value=active..",
                        "spoken" : "..Fixed value=active..",
                        "tactile" : "..Fixed value=active..",
                        "braille" : "..Fixed value=active..",
                        "answer-masking" : "..Fixed value=active..",
                        "keyboard-directions" : "..Fixed value=active..",
                        "additional-directions" : "..Fixed value=active..",
                        "long-description" : "..Fixed value=active..",
                        "captions" : "..Fixed value=active..",
                        "transcript" : "..Fixed value=active..",
                        "alternative-text" : "..Fixed value=active..",
                        "audio-description" : "..Fixed value=active..",
                        "high-contrast" : "..Fixed value=active..",
                        "input-requirements" : "..Fixed value=active..",
                        "language-of-interface" : "..Fixed value=active..",
                        "layout-single-column" : "..Fixed value=active..",
                        "text-appearance" : "..Fixed value=active..",
                        "calculator-on-screen" : "..Fixed value=active..",
                        "dictionary-on-screen" : "..Fixed value=active..",
                        "glossary-on-screen" : "..Fixed value=active..",
                        "thesaurus-on-screen" : "..Fixed value=active..",
                        "homophone-checker-on-screen" : "..Fixed value=active..",
                        "note-taking-on-screen" : "..Fixed value=active..",
                        "visual-organizer-on-screen" : "..Fixed value=active..",
                        "outliner-on-screen" : "..Fixed value=active..",
                        "peer-interaction-on-screen" : "..Fixed value=active..",
                        "spell-checker-on-screen" : "..Fixed value=active..",
                        "..permitted extension point.." : "..user defined value.."
                    },
                    "..permitted extension point.." : "..user defined value.."
                }
            },
            {...},
            {...}
        ]
    }
                        

Privacy Implications for the Response Payload

In the above example the following attributes contain data that has privacy implications:

7.14.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 404, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 7.14.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAllAfAPNPRecords" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_codeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7c.

Code 7.14.2 - JSON payload example for "default, 400, 401, 403, 404, 429, 500" response messages for a "getAllAfAPNPRecords" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"forbidden"|"internal_server_error"|"invalid_filter_field"|"invalid_selection_field"|"invalid_sort_field"|"invaliddata"|"server_busy"|"unauthorisedrequest"|"unknownobject"|"unsupported"|"user_already_exists"
                },
                {...},
                {...}
            ]
        }
    }
                        

toc | top

8. OpenAPI File Description

This Section is NORMATIVE.

8.1 General Information

The set of General Information defined in the OpenAPI description, and realised in both the JSON and YAML instances, are listed in Tables 8.1a (version 2) and 8.1b (version 3). The syntax and semantics for this information are described in Appendix A3.1.

Table 8.1a - The Set of General Information Defined in the OpenAPI(2) Description.
Swagger Version 2.0
Specification Title Access for All Personal Needs and Preferences (AfAPNP) Service
Specification Version 1.0
Description The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
Terms of Service 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 1EdTech 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 Vice President of Operations, 1EdTech (https://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Host www.1edtech.org
Base Path /ims/afapnp/v1p0
Schemes http, https
Consumes application/json
Produces application/json

Table 8.1b - The Set of General Information Defined in the OpenAPI(3) Description.
OpenAPI Version 3.0.0 or 3.1.0
Specification Title Access for All Personal Needs and Preferences (AfAPNP) Service
Specification Version 1.0
Description The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
Terms of Service https://www.1edtech.org/license.html
Contact Vice President of Operations, 1EdTech (http://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Servers https://{hostName=www.1edtech.org}{basePath=/ims/afapnp/v1p0}
www.1edtech.org/ims/afapnp/v1p0

8.2 Tags Information

The set of Tags defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 8.2. The syntax and semantics for these Tags are described in Appendix A3.2.

Table 8.2 - The Set of Tags Defined in the OpenAPI Description.
Tag Name Description
AfAPNPRecordManagement This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records. The set of endpoints assigned to this tag are:

8.3 Security Information

The OAuth 2 Client Credentials security mode is used for this service. Table 8.3.1 describes the OpenAPI information for the configuration of the OAuth 2.0 Client Credentials. The syntax and semantics for this information are described in Appendix A3.3.

Table 8.3.1 - The Set of OAuth 2.0 Client Credentials Security Information Defined in the OpenAPI Description.
Security Label OAuth2CC
Type oauth2
Description OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.
Flow OAS2 - application
OAS3 - clientCredentials
Token URL https://www.1edtech.org/token
Scopes
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly
Global Scope OAuth2CC : [ https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly, https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly, https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly ]

8.4 Paths Information

The following Tables describe the OpenAPI information for each of the Paths. The syntax and semantics for these Paths are described in Appendix A3.4.

8.4.1 "/afapnprecords" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/afapnprecords" Path.

Table 8.4.1a - The Path Details for the 'GET' verb with the '/afapnprecords' Path.
HTTP Verb: GET
Operation ID getAllAfAPNPRecords
Summary The REST "read" request message for the "getAllAfAPNPRecords()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
Privacy Classification "x-1edtech-confidentiality" : "veryrestricted"
Description To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.
Path Placeholders Path placeholders are not permitted.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
200 AccessForAllPNPRecordSetDType The requested read has been fully serviced and all of the required data returned.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

8.4.2 "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path.

Table 8.4.2a - The Path Details for the 'GET' verb with the '/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords' Path.
HTTP Verb: GET
Operation ID getAfAPNPRecordForUserForActivity
Summary The REST "read" request message for the "getAfAPNPRecordForUserForActivity()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly
Privacy Classification "x-1edtech-confidentiality" : "veryrestricted"
Description To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
  • {activitySourcedId} - the unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleAFAPNPRecordDType The requested read has been fully serviced and all of the required data returned.
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

The following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path.

Table 8.4.2b - The Path Details for the 'DELETE' verb with the '/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords' Path.
HTTP Verb: DELETE
Operation ID deleteAfAPNPRecordForUserForActivity
Summary The REST "delete" request message for the "deleteAfAPNPRecordForUserForActivity()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
Privacy Classification "x-1edtech-confidentiality" : "undefinedverbtype"
Description To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
  • {activitySourcedId} - the unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 imsx_StatusInfoDType The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

The following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path.

Table 8.4.2c - The Path Details for the 'PUT' verb with the '/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords' Path.
HTTP Verb: PUT
Operation ID createAfAPNPRecordForUserForActivity
Summary The REST "create" request message for the "createAfAPNPRecordForUserForActivity()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
Privacy Classification "x-1edtech-confidentiality" : "undefinedverbtype"
Description To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
  • {activitySourcedId} - the unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 imsx_StatusInfoDType The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

The following Table describes the OpenAPI information for the HTTP Verb "POST" on the "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" Path.

Table 8.4.2d - The Path Details for the 'POST' verb with the '/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords' Path.
HTTP Verb: POST
Operation ID addAfAPNPRecordForUserForActivity
Summary The REST "createbp" request message for the "addAfAPNPRecordForUserForActivity()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
Privacy Classification "x-1edtech-confidentiality" : "undefinedverbtype"
Description To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
  • {activitySourcedId} - the unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 imsx_StatusInfoDType The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

8.4.3 "/users/{userSourcedId}/afapnprecords" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/users/{userSourcedId}/afapnprecords" Path.

Table 8.4.3a - The Path Details for the 'GET' verb with the '/users/{userSourcedId}/afapnprecords' Path.
HTTP Verb: GET
Operation ID getAfAPNPRecordSetForUser
Summary The REST "read" request message for the "getAfAPNPRecordSetForUser()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
Privacy Classification "x-1edtech-confidentiality" : "veryrestricted"
Description To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
Query Parameters
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
200 AccessForAllPNPRecordSetDType The requested read has been fully serviced and all of the required data returned.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
400 imsx_StatusInfoDType Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

The following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/users/{userSourcedId}/afapnprecords" Path.

Table 8.4.3b - The Path Details for the 'DELETE' verb with the '/users/{userSourcedId}/afapnprecords' Path.
HTTP Verb: DELETE
Operation ID deleteAfAPNPRecordSetForUser
Summary The REST "delete" request message for the "deleteAfAPNPRecordSetForUser()" API call.
Tags AfAPNPRecordManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
Privacy Classification "x-1edtech-confidentiality" : "undefinedverbtype"
Description To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.
Path Placeholders
  • {userSourcedId} - the unique identifier, GUID, for this user. This is the interoperability identifier for the user.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 imsx_StatusInfoDType The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
default imsx_StatusInfoDType This is the default payload when none of the other HTTP codes are to be supplied.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
404 imsx_StatusInfoDType The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
429 imsx_StatusInfoDType 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'.
500 imsx_StatusInfoDType 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'.

8.5 Definitions Information

The following Tables describe the OpenAPI information for each of the JSON Schema Definitions. The syntax and semantics for these JSON Schema Definition descriptions are described in Appendix A3.5.

8.5.1 "AccessForAllPNPDType" Definition

The OpenAPI JSON Schema description for the "AccessForAllPNPDType" Complex Type is given in Table 8.5.1.

Table 8.5.1 - OpenAPI JSON Schema description for the "AccessForAllPNPDType" Complex Type.
Annotations A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.
Diagram JSON Schema diagram of the AccessForAllPNP object.
Model access-mode-required{0..*} ! adaptation-type-required{0..*} ! at-interoperable{0..1} ! educational-complexity-of-adaptation{0..1} ! hazard-avoidance{0..*} ! input-requirements{0..1} ! language-of-adaptation{0..*} ! language-of-interface{0..*} ! adaptation-detail-required{0..*} ! adaptation-media-required{0..*} ! educational-level-of-adaptation{0..*} ! linguistic-guidance{0..1} ! keyword-emphasis{0..1} ! keyword-translation{0..1} ! simplified-language-portions{0..1} ! simplified-graphics{0..1} ! item-translation{0..1} ! sign-language{0..1} ! encouragement{0..1} ! additional-testing-time{0..1} ! line-reader{0..1} ! magnification{0..1} ! spoken{0..1} ! tactile{0..1} ! braille{0..1} ! answer-masking{0..1} ! keyboard-directions{0..1} ! additional-directions{0..1} ! long-description{0..1} ! captions{0..1} ! environment{0..1} ! transcript{0..1} ! alternative-text{0..1} ! audio-description{0..1} ! high-contrast{0..1} ! layout-single-column{0..1} ! text-appearance{0..1} ! calculator-on-screen{0..1} ! dictionary-on-screen{0..1} ! glossary-on-screen{0..1} ! thesaurus-on-screen{0..1} ! homophone-checker-on-screen{0..1} ! note-taking-on-screen{0..1} ! visual-organizer-on-screen{0..1} ! outliner-on-screen{0..1} ! peer-interaction-on-screen{0..1} ! spell-checker-on-screen{0..1} ! activate-at-initialization-set{0..1} ! activate-as-option-set{0..1} ! prohibit-set{0..1} ! { Namespace Extension }
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "extensions" ]
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ]
Source (OAS2)
    "AccessForAllPNPDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-mode-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AccessModeRequiredDType"
                }
            },
            "adaptation-type-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AdaptationTypeRequiredDType"
                }
            },
            "at-interoperable" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean"
            },
            "educational-complexity-of-adaptation" : {
                "description" : "...",
                "type" : "string"
            },
            "hazard-avoidance" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "input-requirements" : {
                "description" : "...",
                "type" : "string"
            },
            "language-of-adaptation" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LanguageModeDType"
                }
            },
            "language-of-interface" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LanguageModeDType"
                }
            },
            "adaptation-detail-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AdaptationDetailRequiredDType"
                }
            },
            "adaptation-media-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AdaptationMediaRequiredDType"
                }
            },
            "educational-level-of-adaptation" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "linguistic-guidance" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "keyword-emphasis" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "keyword-translation" : {
                "$ref" : "#/definitions/LanguageModeDType"
            },
            "simplified-language-portions" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "simplified-graphics" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "item-translation" : {
                "$ref" : "#/definitions/LanguageModeDType"
            },
            "sign-language" : {
                "$ref" : "#/definitions/LanguageModeDType"
            },
            "encouragement" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "additional-testing-time" : {
                "$ref" : "#/definitions/AdditionalTestingTimeDType"
            },
            "line-reader" : {
                "$ref" : "#/definitions/LineReaderDType"
            },
            "magnification" : {
                "$ref" : "#/definitions/MagnificationDType"
            },
            "spoken" : {
                "$ref" : "#/definitions/SpokenDType"
            },
            "tactile" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "braille" : {
                "$ref" : "#/definitions/BrailleDType"
            },
            "answer-masking" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "keyboard-directions" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "additional-directions" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "long-description" : {
                "$ref" : "#/definitions/LongDescriptionDType"
            },
            "captions" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "environment" : {
                "$ref" : "#/definitions/EnvironmentDType"
            },
            "transcript" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "alternative-text" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "audio-description" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "high-contrast" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "layout-single-column" : {
                "$ref" : "#/definitions/ReplacesAccessModeDType"
            },
            "text-appearance" : {
                "$ref" : "#/definitions/TextAppearanceDType"
            },
            "calculator-on-screen" : {
                "$ref" : "#/definitions/CalculatorDType"
            },
            "dictionary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "glossary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "thesaurus-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "homophone-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "note-taking-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "visual-organizer-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "outliner-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "peer-interaction-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spell-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "activate-at-initialization-set" : {
                "$ref" : "#/definitions/FeatureSetDType"
            },
            "activate-as-option-set" : {
                "$ref" : "#/definitions/FeatureSetDType"
            },
            "prohibit-set" : {
                "$ref" : "#/definitions/FeatureSetDType"
            },
        },
        "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "extensions" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ],
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "AccessForAllPNPDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-mode-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AccessModeRequiredDType"
                }
            },
            "adaptation-type-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AdaptationTypeRequiredDType"
                }
            },
            "at-interoperable" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean"
            },
            "educational-complexity-of-adaptation" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "enriched","simplified" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "hazard-avoidance" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                    ]
                }
            },
            "input-requirements" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "full-keyboard-control","full-mouse-control" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "language-of-adaptation" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LanguageModeDType"
                }
            },
            "language-of-interface" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LanguageModeDType"
                }
            },
            "adaptation-detail-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AdaptationDetailRequiredDType"
                }
            },
            "adaptation-media-required" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AdaptationMediaRequiredDType"
                }
            },
            "educational-level-of-adaptation" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "linguistic-guidance" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "keyword-emphasis" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "keyword-translation" : {
                "$ref" : "#/components/schemas/LanguageModeDType"
            },
            "simplified-language-portions" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "simplified-graphics" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "item-translation" : {
                "$ref" : "#/components/schemas/LanguageModeDType"
            },
            "sign-language" : {
                "$ref" : "#/components/schemas/LanguageModeDType"
            },
            "encouragement" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "additional-testing-time" : {
                "$ref" : "#/components/schemas/AdditionalTestingTimeDType"
            },
            "line-reader" : {
                "$ref" : "#/components/schemas/LineReaderDType"
            },
            "magnification" : {
                "$ref" : "#/components/schemas/MagnificationDType"
            },
            "spoken" : {
                "$ref" : "#/components/schemas/SpokenDType"
            },
            "tactile" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "braille" : {
                "$ref" : "#/components/schemas/BrailleDType"
            },
            "answer-masking" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "keyboard-directions" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "additional-directions" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "long-description" : {
                "$ref" : "#/components/schemas/LongDescriptionDType"
            },
            "captions" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "environment" : {
                "$ref" : "#/components/schemas/EnvironmentDType"
            },
            "transcript" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "alternative-text" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "audio-description" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "high-contrast" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "layout-single-column" : {
                "$ref" : "#/components/schemas/ReplacesAccessModeDType"
            },
            "text-appearance" : {
                "$ref" : "#/components/schemas/TextAppearanceDType"
            },
            "calculator-on-screen" : {
                "$ref" : "#/components/schemas/CalculatorDType"
            },
            "dictionary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "glossary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "thesaurus-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "homophone-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "note-taking-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "visual-organizer-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "outliner-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "peer-interaction-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spell-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "activate-at-initialization-set" : {
                "$ref" : "#/components/schemas/FeatureSetDType"
            },
            "activate-as-option-set" : {
                "$ref" : "#/components/schemas/FeatureSetDType"
            },
            "prohibit-set" : {
                "$ref" : "#/components/schemas/FeatureSetDType"
            },
        },
        "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "extensions" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ],
        "additionalProperties" : true
    },
                        

8.5.2 "AccessForAllPNPRecordDType" Definition

The OpenAPI JSON Schema description for the "AccessForAllPNPRecordDType" Complex Type is given in Table 8.5.2.

Table 8.5.2 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordDType" Complex Type.
Annotations This is the container for each of the AfA PNP Records.
Diagram JSON Schema diagram of the AccessForAllPNPRecord object.
Model personSourcedId{1..1}, activitySourcedId{1..1}, access-for-all-pnp{1..1}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ]
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ]
Source (OAS2)
    "AccessForAllPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "personSourcedId" : {
                "$ref" : "#/definitions/PersonSourcedIdDType"
            },
            "activitySourcedId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "access-for-all-pnp" : {
                "$ref" : "#/definitions/AccessForAllPNPDType"
            },
        },
        "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
        "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AccessForAllPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "personSourcedId" : {
                "$ref" : "#/components/schemas/PersonSourcedIdDType"
            },
            "activitySourcedId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "access-for-all-pnp" : {
                "$ref" : "#/components/schemas/AccessForAllPNPDType"
            },
        },
        "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
        "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
        "additionalProperties" : false
    },
                        

8.5.3 "AccessForAllPNPRecordSetDType" Definition

The OpenAPI JSON Schema description for the "AccessForAllPNPRecordSetDType" Complex Type is given in Table 8.5.3.

Table 8.5.3 - OpenAPI JSON Schema description for the "AccessForAllPNPRecordSetDType" Complex Type.
Annotations This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.
Diagram JSON Schema diagram of the AccessForAllPNPRecordSet object.
Model access-for-all-pnp-record{0..*}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "access-for-all-pnp-record" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ]
Source (OAS2)
    "AccessForAllPNPRecordSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AccessForAllPNPRecordDType"
                }
            },
        },
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AccessForAllPNPRecordSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AccessForAllPNPRecordDType"
                }
            },
        },
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        

8.5.4 "AccessModeRequiredDType" Definition

The OpenAPI JSON Schema description for the "AccessModeRequiredDType" Complex Type is given in Table 8.5.4.

Table 8.5.4 - OpenAPI JSON Schema description for the "AccessModeRequiredDType" Complex Type.
Annotations The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.
Diagram JSON Schema diagram of the AccessModeRequired object.
Model existing-access-mode{1..1}, adaptation-request{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "AccessModeRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "type" : "string"
            },
            "adaptation-request" : {
                "description" : "...",
                "type" : "string"
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AccessModeRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "adaptation-request" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.5 "AdaptationDetailRequiredDType" Definition

The OpenAPI JSON Schema description for the "AdaptationDetailRequiredDType" Complex Type is given in Table 8.5.5.

Table 8.5.5 - OpenAPI JSON Schema description for the "AdaptationDetailRequiredDType" Complex Type.
Annotations The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value.
Diagram JSON Schema diagram of the AdaptationDetailRequired object.
Model existing-access-mode{1..1}, adaptation-request{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "AdaptationDetailRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "type" : "string"
            },
            "adaptation-request" : {
                "description" : "...",
                "type" : "string"
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AdaptationDetailRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "adaptation-request" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                        }
                ]
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.6 "AdaptationMediaRequiredDType" Definition

The OpenAPI JSON Schema description for the "AdaptationMediaRequiredDType" Complex Type is given in Table 8.5.6.

Table 8.5.6 - OpenAPI JSON Schema description for the "AdaptationMediaRequiredDType" Complex Type.
Annotations The container for the requirement for a particular type of media.
Diagram JSON Schema diagram of the AdaptationMediaRequired object.
Model existing-access-mode{1..1}, adaptation-request{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "AdaptationMediaRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "type" : "string"
            },
            "adaptation-request" : {
                "description" : "...",
                "type" : "string"
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AdaptationMediaRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "adaptation-request" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.7 "AdaptationTypeRequiredDType" Definition

The OpenAPI JSON Schema description for the "AdaptationTypeRequiredDType" Complex Type is given in Table 8.5.7.

Table 8.5.7 - OpenAPI JSON Schema description for the "AdaptationTypeRequiredDType" Complex Type.
Annotations Nature or genre of the adaptation required as a replacement for a specific access mode.
Diagram JSON Schema diagram of the AdaptationTypeRequired object.
Model existing-access-mode{1..1}, adaptation-request{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "AdaptationTypeRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "type" : "string"
            },
            "adaptation-request" : {
                "description" : "...",
                "type" : "string"
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AdaptationTypeRequiredDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "existing-access-mode" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "adaptation-request" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                        }
                ]
            },
        },
        "required" : [ "existing-access-mode","adaptation-request" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.8 "AdditionalTestingTimeDType" Definition

The OpenAPI JSON Schema description for the "AdditionalTestingTimeDType" Complex Type is given in Table 8.5.8.

Table 8.5.8 - OpenAPI JSON Schema description for the "AdditionalTestingTimeDType" Complex Type.
Annotations The container for the set of additional testing time preferences. Only one of the available options can be selected.
Diagram JSON Schema diagram of the AdditionalTestingTime object.
Model replace-access-mode-auditory{0..1} | replace-access-mode-color{0..1} | replace-access-mode-item-size{0..1} | replace-access-mode-olfactory{0..1} | replace-access-mode-orientation{0..1} | replace-access-mode-position{0..1} | replace-access-mode-tactile{0..1} | replace-access-mode-text-on-image{0..1} | replace-access-mode-textual{0..1} | replace-access-mode-visual{0..1} | time-multiplier{1..1} | fixed-minutes{1..1} | unlimited{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "AdditionalTestingTimeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "time-multiplier" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "fixed-minutes" : {
                "description" : "Model Primitive Datatype = Integer. ",
                "type" : "integer",
                "format" : "int32"
            },
            "unlimited" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AdditionalTestingTimeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "time-multiplier" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "fixed-minutes" : {
                "description" : "Model Primitive Datatype = Integer. ",
                "type" : "integer",
                "format" : "int32"
            },
            "unlimited" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.9 "BrailleDType" Definition

The OpenAPI JSON Schema description for the "BrailleDType" Complex Type is given in Table 8.5.9.

Table 8.5.9 - OpenAPI JSON Schema description for the "BrailleDType" Complex Type.
Annotations The container for the set of preferences for Braille devices.
Diagram JSON Schema diagram of the Braille object.
Model language{0..1} ! replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} ! delivery-mode{0..1} ! grade{0..1} ! braille-type{0..1} ! math-type{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "BrailleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "language" : {
                "description" : "Model Primitive Datatype = Language. ",
                "type" : "string"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "delivery-mode" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "embossed","refreshable" ],
                "default" : "refreshable"
            },
            "grade" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "1","2","3" ],
                "default" : "2"
            },
            "braille-type" : {
                "description" : "...",
                "type" : "string"
            },
            "math-type" : {
                "description" : "...",
                "type" : "string"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "BrailleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "language" : {
                "description" : "Model Primitive Datatype = Language. ",
                "type" : "string"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "delivery-mode" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "embossed","refreshable" ],
                "default" : "refreshable"
            },
            "grade" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "1","2","3" ],
                "default" : "2"
            },
            "braille-type" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "ebae","ueb" ]
                        }
                ]
            },
            "math-type" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "nemeth","ueb" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.10 "CalculatorDType" Definition

The OpenAPI JSON Schema description for the "CalculatorDType" Complex Type is given in Table 8.5.10.

Table 8.5.10 - OpenAPI JSON Schema description for the "CalculatorDType" Complex Type.
Annotations The data-type for the type of calculator tool.
Diagram JSON Schema diagram of the Calculator object.
Type Hierarchy EmptyPrimitiveTypeDType
^---CalculatorDType
Model calculator-type{0..1}, value{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "CalculatorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "calculator-type" : {
                "description" : "...",
                "type" : "string"
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "required" : [ "value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        
Source (OAS3)
    "CalculatorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "calculator-type" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "basic","standard","scientific","graphing" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                ]
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "required" : [ "value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        

8.5.11 "EnvironmentDType" Definition

The OpenAPI JSON Schema description for the "EnvironmentDType" Complex Type is given in Table 8.5.11.

Table 8.5.11 - OpenAPI JSON Schema description for the "EnvironmentDType" Complex Type.
Annotations The container for the set of preferences for the environment within which the learning exerience is to take place.
Diagram JSON Schema diagram of the Environment object.
Model replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} ! description{0..1} ! medical{0..1} ! software{0..1} ! hardware{0..1} ! breaks{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "EnvironmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "description" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "medical" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "software" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "hardware" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "breaks" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "EnvironmentDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "description" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "medical" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "software" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "hardware" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "breaks" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.12 "FeatureSetDType" Definition

The OpenAPI JSON Schema description for the "FeatureSetDType" Complex Type is given in Table 8.5.12.

Table 8.5.12 - OpenAPI JSON Schema description for the "FeatureSetDType" Complex Type.
Annotations This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.
Diagram JSON Schema diagram of the FeatureSet object.
Model linguistic-guidance{0..1} ! keyword-emphasis{0..1} ! keyword-translation{0..1} ! simplified-language-portions{0..1} ! simplified-graphics{0..1} ! item-translation{0..1} ! sign-language{0..1} ! encouragement{0..1} ! additional-testing-time{0..1} ! line-reader{0..1} ! magnification{0..1} ! spoken{0..1} ! tactile{0..1} ! braille{0..1} ! answer-masking{0..1} ! keyboard-directions{0..1} ! additional-directions{0..1} ! long-description{0..1} ! captions{0..1} ! transcript{0..1} ! alternative-text{0..1} ! audio-description{0..1} ! high-contrast{0..1} ! input-requirements{0..1} ! language-of-interface{0..1} ! layout-single-column{0..1} ! text-appearance{0..1} ! calculator-on-screen{0..1} ! dictionary-on-screen{0..1} ! glossary-on-screen{0..1} ! thesaurus-on-screen{0..1} ! homophone-checker-on-screen{0..1} ! note-taking-on-screen{0..1} ! visual-organizer-on-screen{0..1} ! outliner-on-screen{0..1} ! peer-interaction-on-screen{0..1} ! spell-checker-on-screen{0..1} ! { Namespace Extension }
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "extensions" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "extensions" ]
Source (OAS2)
    "FeatureSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "linguistic-guidance" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyword-emphasis" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyword-translation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "simplified-language-portions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "simplified-graphics" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "item-translation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "sign-language" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "encouragement" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "additional-testing-time" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "line-reader" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "magnification" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spoken" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "braille" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "answer-masking" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyboard-directions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "additional-directions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "long-description" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "captions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "transcript" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "alternative-text" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "audio-description" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "high-contrast" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "input-requirements" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "language-of-interface" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "layout-single-column" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "text-appearance" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "calculator-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "dictionary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "glossary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "thesaurus-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "homophone-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "note-taking-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "visual-organizer-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "outliner-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "peer-interaction-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spell-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-privacy" : [ "extensions" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "FeatureSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "linguistic-guidance" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyword-emphasis" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyword-translation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "simplified-language-portions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "simplified-graphics" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "item-translation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "sign-language" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "encouragement" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "additional-testing-time" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "line-reader" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "magnification" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spoken" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "braille" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "answer-masking" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "keyboard-directions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "additional-directions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "long-description" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "captions" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "transcript" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "alternative-text" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "audio-description" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "high-contrast" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "input-requirements" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "language-of-interface" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "layout-single-column" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "text-appearance" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "calculator-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "dictionary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "glossary-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "thesaurus-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "homophone-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "note-taking-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "visual-organizer-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "outliner-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "peer-interaction-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "spell-checker-on-screen" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-privacy" : [ "extensions" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : true
    },
                        

8.5.13 "FontFaceDType" Definition

The OpenAPI JSON Schema description for the "FontFaceDType" Complex Type is given in Table 8.5.13.

Table 8.5.13 - OpenAPI JSON Schema description for the "FontFaceDType" Complex Type.
Annotations The container for information about the font face to be used.
Diagram JSON Schema diagram of the FontFace object.
Model font-name{0..*} ! generic-font-face{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "FontFaceDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "font-name" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "generic-font-face" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
            },
        },
        "required" : [ "generic-font-face" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "FontFaceDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "font-name" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "generic-font-face" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
            },
        },
        "required" : [ "generic-font-face" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.14 "LanguageModeDType" Definition

The OpenAPI JSON Schema description for the "LanguageModeDType" Complex Type is given in Table 8.5.14.

Table 8.5.14 - OpenAPI JSON Schema description for the "LanguageModeDType" Complex Type.
Annotations The container for the set of preferences related to the language mode.
Diagram JSON Schema diagram of the LanguageMode object.
Model language{1..1} ! replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} !
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "LanguageModeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "language" : {
                "description" : "Model Primitive Datatype = Language. ",
                "type" : "string"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LanguageModeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "language" : {
                "description" : "Model Primitive Datatype = Language. ",
                "type" : "string"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "required" : [ "language" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.15 "LineReaderDType" Definition

The OpenAPI JSON Schema description for the "LineReaderDType" Complex Type is given in Table 8.5.15.

Table 8.5.15 - OpenAPI JSON Schema description for the "LineReaderDType" Complex Type.
Annotations The container for the preference settings for line readers.
Diagram JSON Schema diagram of the LineReader object.
Model highlight-color{0..1} ! replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} !
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "LineReaderDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "highlight-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LineReaderDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "highlight-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.16 "LongDescriptionDType" Definition

The OpenAPI JSON Schema description for the "LongDescriptionDType" Complex Type is given in Table 8.5.16.

Table 8.5.16 - OpenAPI JSON Schema description for the "LongDescriptionDType" Complex Type.
Annotations The container for the preferences for the provision of long descriptions.
Diagram JSON Schema diagram of the LongDescription object.
Model hide-visually{0..1} ! replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} !
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "LongDescriptionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "hide-visually" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean",
                "default" : true
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LongDescriptionDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "hide-visually" : {
                "description" : "Model Primitive Datatype = Boolean. ",
                "type" : "boolean",
                "default" : true
            },
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.17 "MagnificationDType" Definition

The OpenAPI JSON Schema description for the "MagnificationDType" Complex Type is given in Table 8.5.17.

Table 8.5.17 - OpenAPI JSON Schema description for the "MagnificationDType" Complex Type.
Annotations The container for the details about the magnification preferences.
Diagram JSON Schema diagram of the Magnification object.
Model replace-access-mode-auditory{0..1} | replace-access-mode-color{0..1} | replace-access-mode-item-size{0..1} | replace-access-mode-olfactory{0..1} | replace-access-mode-orientation{0..1} | replace-access-mode-position{0..1} | replace-access-mode-tactile{0..1} | replace-access-mode-text-on-image{0..1} | replace-access-mode-textual{0..1} | replace-access-mode-visual{0..1} | all-content{0..1} | select-magnification{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "MagnificationDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "all-content" : {
                "$ref" : "#/definitions/ZoomAmountDType"
            },
            "select-magnification" : {
                "$ref" : "#/definitions/SelectMagnificationDType"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "MagnificationDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "all-content" : {
                "$ref" : "#/components/schemas/ZoomAmountDType"
            },
            "select-magnification" : {
                "$ref" : "#/components/schemas/SelectMagnificationDType"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.18 "PersonSourcedIdDType" Definition

The OpenAPI JSON Schema description for the "PersonSourcedIdDType" Complex Type is given in Table 8.5.18.

Table 8.5.18 - OpenAPI JSON Schema description for the "PersonSourcedIdDType" Complex Type.
Annotations The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.
Diagram JSON Schema diagram of the PersonSourcedId object.
Model source-system{1..1}, value{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "PersonSourcedIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source-system" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                "type" : "string"
            },
        },
        "required" : [ "source-system","value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        
Source (OAS3)
    "PersonSourcedIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source-system" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                "type" : "string"
            },
        },
        "required" : [ "source-system","value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        

8.5.19 "ReplacesAccessModeDType" Definition

The OpenAPI JSON Schema description for the "ReplacesAccessModeDType" Complex Type is given in Table 8.5.19.

Table 8.5.19 - OpenAPI JSON Schema description for the "ReplacesAccessModeDType" Complex Type.
Annotations This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.
Diagram JSON Schema diagram of the ReplacesAccessMode object.
Model replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "ReplacesAccessModeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ReplacesAccessModeDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.20 "SelectMagnificationDType" Definition

The OpenAPI JSON Schema description for the "SelectMagnificationDType" Complex Type is given in Table 8.5.20.

Table 8.5.20 - OpenAPI JSON Schema description for the "SelectMagnificationDType" Complex Type.
Annotations This is used to contain the zoom magnification factors for the display of text and non-text.
Diagram JSON Schema diagram of the SelectMagnification object.
Model text{0..1}, non-text{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "SelectMagnificationDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "text" : {
                "$ref" : "#/definitions/ZoomAmountDType"
            },
            "non-text" : {
                "$ref" : "#/definitions/ZoomAmountDType"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SelectMagnificationDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "text" : {
                "$ref" : "#/components/schemas/ZoomAmountDType"
            },
            "non-text" : {
                "$ref" : "#/components/schemas/ZoomAmountDType"
            },
        },
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.21 "SingleAFAPNPRecordDType" Definition

The OpenAPI JSON Schema description for the "SingleAFAPNPRecordDType" Complex Type is given in Table 8.5.21.

Table 8.5.21 - OpenAPI JSON Schema description for the "SingleAFAPNPRecordDType" Complex Type.
Annotations The root container for a single AfA PNP record.
Diagram JSON Schema diagram of the SingleAFAPNPRecord object.
Model access-for-all-pnp-record{1..1}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "access-for-all-pnp-record" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ]
Source (OAS2)
    "SingleAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "$ref" : "#/definitions/AccessForAllPNPRecordDType"
            },
        },
        "required" : [ "access-for-all-pnp-record" ],
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "$ref" : "#/components/schemas/AccessForAllPNPRecordDType"
            },
        },
        "required" : [ "access-for-all-pnp-record" ],
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        

8.5.22 "SingleUserAFAPNPRecordDType" Definition

The OpenAPI JSON Schema description for the "SingleUserAFAPNPRecordDType" Complex Type is given in Table 8.5.22.

Table 8.5.22 - OpenAPI JSON Schema description for the "SingleUserAFAPNPRecordDType" Complex Type.
Annotations The root container for the combined user information and their first AfA PNP record.
Diagram JSON Schema diagram of the SingleUserAFAPNPRecord object.
Model access-for-all-pnp-record{1..1}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "access-for-all-pnp-record" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ]
Source (OAS2)
    "SingleUserAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "$ref" : "#/definitions/UserAFAPNPRecordDType"
            },
        },
        "required" : [ "access-for-all-pnp-record" ],
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleUserAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "access-for-all-pnp-record" : {
                "$ref" : "#/components/schemas/UserAFAPNPRecordDType"
            },
        },
        "required" : [ "access-for-all-pnp-record" ],
        "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
        "additionalProperties" : false
    },
                        

8.5.23 "SpokenDType" Definition

The OpenAPI JSON Schema description for the "SpokenDType" Complex Type is given in Table 8.5.23.

Table 8.5.23 - OpenAPI JSON Schema description for the "SpokenDType" Complex Type.
Annotations The container for the preferences that are used to define the ways in which information is 'spoken'.
Diagram JSON Schema diagram of the Spoken object.
Model replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} ! reading-type{1..1} ! restriction-type{0..*} ! speech-rate{0..1} ! pitch{0..1} ! volume{0..1} ! link-indication{1..1} ! typing-echo{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "SpokenDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "reading-type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "computer-read-aloud","screen-reader" ],
                "default" : "screen-reader"
            },
            "restriction-type" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "type" : "string"
                }
            },
            "speech-rate" : {
                "description" : "Model Primitive Datatype = Integer. ",
                "type" : "integer",
                "format" : "int32",
                "default" : "180"
            },
            "pitch" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 0.5
            },
            "volume" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 0.5
            },
            "link-indication" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "different-voice","none","sound-effect","speak-link" ]
            },
            "typing-echo" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "characters","characters-and-words","none","words" ]
            },
        },
        "required" : [ "reading-type","link-indication","typing-echo" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SpokenDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "reading-type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "computer-read-aloud","screen-reader" ],
                "default" : "screen-reader"
            },
            "restriction-type" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "anyOf" : [
                        {
                            "type" : "string",
                            "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                        },
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        }
                    ]
                }
            },
            "speech-rate" : {
                "description" : "Model Primitive Datatype = Integer. ",
                "type" : "integer",
                "format" : "int32",
                "default" : "180"
            },
            "pitch" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 0.5
            },
            "volume" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 0.5
            },
            "link-indication" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "different-voice","none","sound-effect","speak-link" ]
            },
            "typing-echo" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "characters","characters-and-words","none","words" ]
            },
        },
        "required" : [ "reading-type","link-indication","typing-echo" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.24 "TextAppearanceDType" Definition

The OpenAPI JSON Schema description for the "TextAppearanceDType" Complex Type is given in Table 8.5.24.

Table 8.5.24 - OpenAPI JSON Schema description for the "TextAppearanceDType" Complex Type.
Annotations The container for the set of preferences for the appearance of text on a display.
Diagram JSON Schema diagram of the TextAppearance object.
Model replace-access-mode-auditory{0..1} ! replace-access-mode-color{0..1} ! replace-access-mode-item-size{0..1} ! replace-access-mode-olfactory{0..1} ! replace-access-mode-orientation{0..1} ! replace-access-mode-position{0..1} ! replace-access-mode-tactile{0..1} ! replace-access-mode-text-on-image{0..1} ! replace-access-mode-textual{0..1} ! replace-access-mode-visual{0..1} ! color-theme{0..1} ! background-color{0..1} ! font-color{0..1} ! font-size{0..1} ! font-face{0..1} ! line-spacing{0..1} ! line-height{0..1} ! letter-spacing{0..1} ! uniform-font-sizing{0..1} ! word-spacing{0..1} ! word-wrapping{0..1} ! { Namespace Extension }
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "extensions" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "extensions" ]
Source (OAS2)
    "TextAppearanceDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "color-theme" : {
                "description" : "...",
                "type" : "string"
            },
            "background-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "font-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "font-size" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 12.0
            },
            "font-face" : {
                "$ref" : "#/definitions/FontFaceDType"
            },
            "line-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "line-height" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "letter-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "uniform-font-sizing" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "word-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "word-wrapping" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-privacy" : [ "extensions" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "TextAppearanceDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "replace-access-mode-auditory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-color" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-item-size" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-olfactory" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-orientation" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-position" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-tactile" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-text-on-image" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-textual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "replace-access-mode-visual" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "color-theme" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = String.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                        }
                ]
            },
            "background-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "font-color" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string",
                "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            },
            "font-size" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float",
                "default" : 12.0
            },
            "font-face" : {
                "$ref" : "#/components/schemas/FontFaceDType"
            },
            "line-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "line-height" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "letter-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "uniform-font-sizing" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
            "word-spacing" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "word-wrapping" : {
                "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). ",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "x-1edtech-privacy" : [ "extensions" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : true
    },
                        

8.5.25 "UserAFAPNPRecordDType" Definition

The OpenAPI JSON Schema description for the "UserAFAPNPRecordDType" Complex Type is given in Table 8.5.25.

Table 8.5.25 - OpenAPI JSON Schema description for the "UserAFAPNPRecordDType" Complex Type.
Annotations This is the container for each of the combined user information and AfA PNP record.
Diagram JSON Schema diagram of the UserAFAPNPRecord object.
Model personSourcedId{1..1}, activitySourcedId{1..1}, user{1..1}, access-for-all-pnp{1..1}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "veryrestricted"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ]
  • "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ]
Source (OAS2)
    "UserAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "personSourcedId" : {
                "$ref" : "#/definitions/PersonSourcedIdDType"
            },
            "activitySourcedId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "user" : {
                "$ref" : "#/definitions/UserRecordDType"
            },
            "access-for-all-pnp" : {
                "$ref" : "#/definitions/AccessForAllPNPDType"
            },
        },
        "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
        "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserAFAPNPRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "personSourcedId" : {
                "$ref" : "#/components/schemas/PersonSourcedIdDType"
            },
            "activitySourcedId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "user" : {
                "$ref" : "#/components/schemas/UserRecordDType"
            },
            "access-for-all-pnp" : {
                "$ref" : "#/components/schemas/AccessForAllPNPDType"
            },
        },
        "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
        "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ],
        "x-1edtech-confidentiality" : "veryrestricted",
        "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ],
        "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
        "additionalProperties" : false
    },
                        

8.5.26 "UserIdDType" Definition

The OpenAPI JSON Schema description for the "UserIdDType" Complex Type is given in Table 8.5.26.

Table 8.5.26 - OpenAPI JSON Schema description for the "UserIdDType" Complex Type.
Annotations This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
Diagram JSON Schema diagram of the UserId object.
Model type{1..1} ! identifier{1..1}
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "type","identifier" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "normal"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "type","identifier" ]
Source (OAS2)
    "UserIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "type","identifier" ],
        "x-1edtech-privacy" : [ "type","identifier" ],
        "x-1edtech-confidentiality" : "normal",
        "x-1edtech-confidentiality-normal" : [ "type","identifier" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserIdDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "identifier" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "type","identifier" ],
        "x-1edtech-privacy" : [ "type","identifier" ],
        "x-1edtech-confidentiality" : "normal",
        "x-1edtech-confidentiality-normal" : [ "type","identifier" ],
        "additionalProperties" : false
    },
                        

8.5.27 "UserRecordDType" Definition

The OpenAPI JSON Schema description for the "UserRecordDType" Complex Type is given in Table 8.5.27.

Table 8.5.27 - OpenAPI JSON Schema description for the "UserRecordDType" Complex Type.
Annotations The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.
Diagram JSON Schema diagram of the UserRecord object.
Model userIds{1..*} ! { Namespace Extension }
Privacy and Confidentiality Privacy Annotations
  • "x-1edtech-privacy" : [ "userIds","extensions" ]
Confidentiality Classification
  • "x-1edtech-confidentiality" : "normal"
Confidentiality Assignments
  • "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ]
Source (OAS2)
    "UserRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "userIds" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/UserIdDType"
                }
            },
        },
        "required" : [ "userIds" ],
        "x-1edtech-privacy" : [ "userIds","extensions" ],
        "x-1edtech-confidentiality" : "normal",
        "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ],
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "UserRecordDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "userIds" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/UserIdDType"
                }
            },
        },
        "required" : [ "userIds" ],
        "x-1edtech-privacy" : [ "userIds","extensions" ],
        "x-1edtech-confidentiality" : "normal",
        "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ],
        "additionalProperties" : true
    },
                        

8.5.28 "ZoomAmountDType" Definition

The OpenAPI JSON Schema description for the "ZoomAmountDType" Complex Type is given in Table 8.5.28.

Table 8.5.28 - OpenAPI JSON Schema description for the "ZoomAmountDType" Complex Type.
Annotations A data-type for amount of zoom i.e. magnification.
Diagram JSON Schema diagram of the ZoomAmount object.
Type Hierarchy EmptyPrimitiveTypeDType
^---ZoomAmountDType
Model zoom-amount{0..1}, value{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "ZoomAmountDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "zoom-amount" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "required" : [ "value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        
Source (OAS3)
    "ZoomAmountDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "zoom-amount" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "value" : {
                "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                "type" : "string",
                "enum" : [ "active" ]
            },
        },
        "required" : [ "value" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
                        

8.5.29 "imsx_CodeMinorDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type is given in Table 8.5.29.

Table 8.5.29 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.
Annotations This is the container for the set of code minor status codes reported in the responses from the Service Provider.
Diagram JSON Schema diagram of the imsx_CodeMinor object.
Model imsx_codeMinorField{1..*}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.30 "imsx_CodeMinorFieldDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type is given in Table 8.5.30.

Table 8.5.30 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.
Annotations This is the container for a single code minor status code.
Diagram JSON Schema diagram of the imsx_CodeMinorField object.
Model imsx_codeMinorFieldName{1..1}, imsx_codeMinorFieldValue{1..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                            "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                            "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

8.5.31 "imsx_StatusInfoDType" Definition

The OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type is given in Table 8.5.31.

Table 8.5.31 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type.
Annotations This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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.
Diagram JSON Schema diagram of the imsx_StatusInfo object.
Model imsx_codeMajor{1..1}, imsx_severity{1..1}, imsx_description{0..1}, imsx_codeMinor{0..1}
Privacy and Confidentiality Privacy Annotations
  • None.
Confidentiality Classification
  • "x-1edtech-confidentiality" : "unrestricted"
Source (OAS2)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "failure","processing","success","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "error","status","warning" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_codeMinor" : {
                "$ref" : "#/definitions/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "failure","processing","success","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "error","status","warning" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_codeMinor" : {
                "$ref" : "#/components/schemas/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "x-1edtech-confidentiality" : "unrestricted",
        "additionalProperties" : false
    },
                        

toc | top

9. Extending and Profiling the Binding

9.1. Extending the Binding

Proprietary extensions of the service are based upon three approaches:

It is NOT permitted to change the behavior of the current set of operations. Such changes MUST be supported by the creation of new operations.

9.1.1. Proprietary Operations

The definition of new operations should follow the same format as adopted herein. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system. A new version of the OpenAPI files should also be generated with the new operation definitions.

An example of creating such an extension is given in the accompanying Implementation Guide document [AFAPNP-IMPL-10].

9.1.2. Proprietary Scopes

It is permitted to create extra OAuth 2 scopes to provide more control over the availability of various endpoints.

An example of creating such an extension is given in the accompanying Implementation Guide document [AFAPNP-IMPL-10].

9.1.3. Proprietary Data Elements

It is recognized that implementers may wish to extend the specification. The preferred mechanism for doing this is for implementers to use an extension space within the AfA PNP data model, and then set their parsers to read those extension attributes. Extensions are permitted in the following classes:

These extensions take the form of name/value pairs. The name is the label of the extension field, and the value is the value of the extension. For example, if wanting to show the extension of field "classification", with value "private" that was added/provided by "1EdTech", the name/value pair is: "1et.classification" : "private".

Within the OpenAPI files, uncontrolled data extensions are explicitly prohibited by the JSON Schema definition.

An example of creating such an extension is given in the accompanying Implementation Guide document [AFAPNP-IMPL-10].

9.1.4. Proprietary Vocabulary Terms

Several of the enumerated vocabularies can be extended, namely:

The vocabularies are extended through the union of the set of enumerated values and an extension string. The only constraint on the new values in a vocabulary are that they must start with the substring 'ext:'.

An example of creating such an extension is given in the accompanying Implementation Guide document [AFAPNP-IMPL-10].

9.2. Profiling the Binding

This Service can be profiled. In general, Profiling is used to:

Valid Profiles must be restrictive i.e. optional features can be removed or constraints increased but new features must not be added. A Profile of this service is made by annotating the UML supplied with the documentation for the specification.

It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of 1EdTech. However, no matter who is responsible for creating the profile artefacts (documents, OpenAPI files, XSDs, etc.), it is strongly recommended that the 1EdTech specification tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarises the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact contact the 1EdTech VP of Operations at: operations@1edtech.org.

toc | top

References

[AFADRD-DM-30] 1EdTech Access For All Digital Resource v3.0 Description Information Model v1.0 Public Candidate Final v2.0, M.Rothberg, T.Hoffman and C.Smythe, 1EdTech Consortium Inc., January 2021, https://www.imsglobal.org/afa/afav3p0/imsafadrdv3p0_infomodelpdv2p0.html.
[AFAPNP-DM-30] 1EdTech Access for All (AfA) Personal Needs and Preferences (PNP) Information Model v3.0 Public Candidate Final v2.0, M.Rothberg, T.Hoffman and C.Smythe, 1EdTech Consortium Inc., January 2021, https://www.imsglobal.org/afa/afav3p0/imsafapnpv3p0_infomodelpdv2p0.html.
[AFAPNP-IMPL-10] 1EdTech Access for All Personal Needs and Preferences (AfA PNP) Service 1.0 Best Practices, C.Smythe and T.Hoffmann, 1EdTech Consortium Inc., November 2023, https://www.imsglobal.org/afa/afav1p0/imsafapnpservicev1p0_bpigcfv1p0.html.
[AFAPNP-IMPL-30] 1EdTech Access For All v3.0 Best Practices Guide v1.0, M.Rothberg, T.Hoffman and C.Smythe, 1EdTech Consortium Inc., January 2021, https://www.imsglobal.org/afa/afav3p0/imsafapnpv3p0_bpigpdv2p0.html.
[AFAPNP-OVW-30] 1EdTech Access For All Specification Overview v1.0, M.Rothberg, T.Hoffman and C.Smythe, 1EdTech Consortium Inc., January 2021, https://www.imsglobal.org/afa/afav3p0/imsafapnpv3p0_overviewpdv2p0.html.
[AFAPNP-RJ-10] 1EdTech Access for All Personal Needs and Preferences (AfA PNP) Service REST/JSON Binding 1.0, C.Smythe and T.Hoffmann, 1EdTech Consortium Inc., November 2023, https://www.imsglobal.org/afa/afav1p0/imsafapnpservicev1p0_restjsoncfv1p0.html.
[AFAPNP-SM-10] 1EdTech Access for All Personal Needs and Preferences (AfA PNP) Service Model 1.0, C.Smythe and T.Hoffmann, 1EdTech Consortium Inc., November 2023, https://www.imsglobal.org/afa/afav1p0/imsafapnpservicev1p0_infocfv1p0.html.
[I-BAT, 06] 1EdTech Binding Auto-generation Toolkit (I-BAT), C.Smythe, 1EdTech Consortium Inc., July 2006.
[ISO 29138] ISO/IEC 29138-1:2018 - Information technology - User interface accessibility - Part 1: User accessibility needs, ISO, International Standards Organization (ISO), November 2018, https://www.iso.org/standard/71953.html.
[ISO 8601] ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000.
[Privacy, 23] 1EdTech Privacy Framework 1.0 Candidate Final 1.0, C.Smythe and J.McGhee, 1EdTech Consortium Inc., November 2023, https://www.imsglobal.org/spec/privacy/v1p0/.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, IETF (RFC 2119), March 1997, https://tools.ietf.org/pdf/rfc2119.pdf.
[RFC 3066] Tags for the Identification of Languages, H.Alvestrand, IETF (RFC 3066), January 2001, https://www.ietf.org/rfc/rfc3066.txt.
[UNICODE, 16] UNICODE Collation Algorithm Version 9.0, M.Davis, K.Whistler and M.Scheer, Unicode Technical Standard #10, May 2016.
[VDEX, 04] 1EdTech Vocabulary Definition Exchange (VDEX) 1.0, A.Cooper, 1EdTech Consortium Inc., February 2004, https://www.imsglobal.org/vdex/vdexv1p0/imsvdex_infov1p0.html.

toc | top

Appendix A REST Binding Terms

A1 REST Endpoint Description Terms

A1.1 REST Endpoint Mapping Table Explanation

Table A1.1 provides the key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.

Table A1.1 The key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.
Category Definition and Usage
Service Call The name of the service call as defined in the associated Behavioral Model.
REST Endpoint The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification).
HTTP Verb The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.

toc | top

A1.2 Query Parameter Table Explanation

Table A1.2 provides the key to the descriptions of the query parameters that are permitted for an endpoint.

Table A1.2 The key to the descriptions of the data attribute/characteristic tables.
Category Definition and Usage
Parameter Name The name given to the query parameter being described.
Data Type This is the data-type of the parameter. The data-type can take many forms:
  • Enumeration - a list of the permitted values;
  • Primitive Data-types from:-
    • AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension);
    • AnyURI - the AnyURI data-type (absolute or relative URI);
    • Base - the base data-type for defining a base URI/URL link reference;
    • Boolean - the boolean data-type (with permitted values of "true" and "false");
    • Date - the date data-type (using the [ISO 8601] format);
    • DateTime - the date/time data-type (using the [ISO 8601] format);
    • Decimal - the decimal data-type (a variable precision number that is either positive or negative);
    • Double - the double data-type (double precision floating point number - 64bit);
    • Duration - the duration data-type (using the [ISO 8601] format)
    • Empty - the associated instance must be empty;
    • Float - the float data-type (single precision floating point number - 32bit);
    • ID - the unique identifier data-type;
    • IDREF - the reference to a previously defined unique identifier data-type (ID);
    • IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID);
    • Int - the int data-type (this is derived from the "decimal" data-type);
    • Integer - the integer data-type (using the);
    • Language - the language data-type as defined in [BCP 47];
    • Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models);
    • NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation);
    • NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher;
    • NCName - the NCName data-type (derived from the Name data-type);
    • NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed);
    • PositiveInteger - the positive integer data-type (this is derived from the "nonNegativeinteger" data-type) i.e. an integer that is one or higher;
    • String - the normalized string data type;
    • Time - the time data-type (using the [ISO 8601] format).
Value Space The range of valid values for this parameter (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Multiplicity A property of the parameter indicating the number of values that may be assigned to the parameter (this occurs as a comma separated list). The values of this property are expressed as a range or shorthand for a range using the notation:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
Description Contains descriptions relating to the query parameter and its values space.

toc | top

A1.3 HTTP Codes and Handling for each Endpoint Table Explanation

Table A1.3 provides the key to the descriptions of the list of HTTP codes and handling for each endpoint.

Table A1.3 The key to the descriptions of the list of HTTP codes and handling for each endpoint.
Category Definition and Usage
REST Endpoint The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification).
HTTP Verb The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.
HTTP Codes and Handling The list of HTTP codes that may be returned by the service provider. A description of the cause of the HTTP code is supplied along with a link to the definition of the associated JSON payload structure that contains the detailed status information.

A1.4 Endpoint Confidentiality Classification Table Explanation

Table A1.4 provides the key to the descriptions of the privacy classification of the exchanged payloads.

Table A1.4 The key to the descriptions of the privacy classification of the exchanged payloads.
Category Definition and Usage
Service Call The logical name/identifier for the service i.e. this is NOT the endpoint URL-leaf.
HTTP Verb The HTTP Verb for the request message. This is enumerated as: GET, PUT, POST and DELETE.
Request Message Parameters The list of parameters that are used to construct the request body. The name and data-type for each parameter is supplied. Some parameters are mapped to the URL and others as part of the JSON encoded message body.
Request Message Classification The confidentiality classification of the request message paylaod as a whole. The set of possible values are:
  • "unrestricted" - there are no privacy concerns (this is the default value);
  • "normal" - denotes that privacy sensitive data could be included and so all best practices to secure this data should be used;
  • "restricted" - denotes that some of the data is more sensitive than usual or that many attributes information that when used together create increased vulnerability for identification of the associated individual or group;
  • "veryrestricted" - denotes that the request could contain very sensitive privacy data. Depending on the capabilities of the Consumer this very sensitive data may be obfuscated or may not even be present.
Response Message Parameters The list of parameters that are used to construct the response body. The name and data-type for each parameter is supplied. All of the data is returned in the JSON encoded message body.
Response Message Classification The confidentiality classification of the response message paylaod as a whole. The set of possible values are:
  • "unrestricted" - there are no privacy concerns (this is the default value);
  • "normal" - denotes that privacy sensitive data could be included and so all best practices to secure this data should be used;
  • "restricted" - denotes that some of the data is more sensitive than usual or that many attributes information that when used together create increased vulnerability for identification of the associated individual or group;
  • "veryrestricted" - denotes that the request could contain very sensitive privacy data. Depending on the capabilities of the Provider this very sensitive data may be obfuscated or may not even be present.

A1.5 Data Model Confidentiality Classification Table Explanation

Table A1.5 provides the key to the descriptions of the privacy classification of the individual attributes for each data model class.

Table A1.5 The key to the descriptions of the privacy classification of the individual attributes for each data model class.
Category Definition and Usage
Class Name The name of the class as defined in the accompanying binding files.
Class Privacy Attribute Set The full list of attributes in the class/data-type that have been annotated as containing privacy sensitive data. Only those attributes identified with a level of "normal" or "restricted" or "veryrestricted" are listed.
Class Confidentiality Classification The confidentiality classification of the class/data-type as a whole. The set of possible values are:
  • "unrestricted" - there are no privacy concerns (this is the default value);
  • "normal" - denotes that privacy sensitive data could be included;
  • "restricted" - denotes that some of the data is more sensitive than usual or that many attributes information that when used together create increased vulnerability for identification of the associated individual or group;
  • "veryrestricted" - denotes that the request could contain very sensitive privacy data. This data should either be obfuscated or perhaps not even sent.
Attributes (Confidentiality-Normal) The list of attributes that have been classified with a confidentiality level of "normal".
Attributes (Confidentiality-Restricted) The list of attributes that have been classified with a confidentiality level of "restricted".
Attributes (Confidentiality-VeryRestricted) The list of attributes that have been classified with a confidentiality level of "veryrestricted".

toc | top

A2 UML to JSON Mapping Description Terms

A2.1 Service Parameter Payload Properties UML/JSON Mapping Table Definition

Table A2.1 provides the key to the descriptions of UML to JSON service parameter mapping tables.

Table A2.1 The key to the descriptions of UML to JSON service parameter mapping tables.
Feature Definition and Usage
Operation Name The name operation (this will be a list of all of the operations for the set of defined interfaces).
Parameter Name The name of the service parameter (these are the parameters listed for the operation that are not mapped to endpoint query parameters).
UML Class The name of the class, the type of the parameter, in the UML diagrams (each class will have an associated stereotype label to denote its modeling interpretation). If the information model description is contained within the same document, this value is hot-linked to that description.
JSON Name The equivalent name of the JSON parameter name in the JSON payload.
JSON Type The JSON type - this will be either "Object" or "Array of Objects".
JSON Schema Data Type The data-type in the context of the JSON Schema. This is hot-linked to the corresponding description table in the binding.

toc | top

A2.2 UML/JSON Payload Class Mapping Table Definition

Table A2.2 provides the key to the descriptions of UML to JSON payload class mapping tables. This table shows the relationship between the two modeling components:

Table A2.2 The key to the descriptions of UML to JSON payload class mapping tables.
Feature Definition and Usage
Name The name of the UML class and the associated set of attributes and characteristics. The first row is used to describe the UML class. Camel-case is used for the attribute and characteristic names.
UML Artifact The UML Class will be denoted as "Root" or "Core" depending on the nature of the class. The list of attributes (mapped to JSON properties) and characteristics (mapped to JSON properties) will be identified as either "Attributes" or "Characteristics".
Data Type The data-type has several permitted values:
  • PT:... - denotes a primitive type with "..." replaced by the actual primitiveType name
  • DT:... (PT:...) - denotes a derived type of name "..." derived from the primitive type "PT:..."
  • [Enumeration(...)] - denotes an enumeration of name "..."
  • [List(...)] - denotes a list of the name "..."
  • [Union(...)] - denotes a union of one or more data-types with the name "..."
  • [Imported(...)] - denotes a class with the name "..." has been imported from another specification
  • "Container[...]" - denotes a class of stereotype "..."
Multiplicity The multiplicity of the child attribute/characteristic. The value for the Class itself is "-N/A-". The multiplicity values are:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
The multiplicity will also indicate when groups of elements have variable multiplicity. In the case when a selection between groups of elements is used then this is denoted by "XOR" being displayed above the multiplicity for each of the grouped elements. Alongside the XOR is the multiplicity of the group as a whole.
JSON Name This is the equivalent name of the UML artifact in the JSON.
JSON Type The JSON data-type. For the Class this will have the value "Object". For the attributes the value is either "Property" or "Array of Properties" depending on the multiplicity. For the characteristics the value is either "Properties" or "Array of Properties" depending on the multiplicity.

toc | top

A2.3 UML/JSON Enumerated and Enumerated List Class Mapping Table Definition

Table A2.3 provides the key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.

Table A2.3 The key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.
Feature Definition and Usage
Enumeration Class Name or Enumeration List Class Name The name of the enumeration class or the enumeration list class.
Description The list of permitted tokens for the enumeration or list. Each value is separated by the "|" character.

toc | top

A2.4 UML/JSON Primitive Types Mapping Table Definition

Table A2.4 provides the key to the descriptions of UML to JSON primitive-type mapping tables.

Table A2.4 The key to the descriptions of UML to JSON primitive-type mapping tables.
Feature Definition and Usage
Primitive Type Name The name of the primitive type used in the specification. Links to the definition of the primitive types, if provided elsewhere in the document, are supplied.
Description The equivalent base data type that is used in the JSON binding.

toc | top

A3 OpenAPI (v2 and v3) Description Terms

These definitions are with respect to the OpenAPI version 2 [OAS, 14] and version 3 [OAS, 17] specifications.

A3.1 OpenAPI General Information Table Explanation

Tables A3.1a and A3.1b provide the key to the OpenAPI(2) and OpenAPI(3) general information respectively.

Table A3.1a The key to the tabular description of the OpenAPI(2) general information.
Category Definition and Usage
Swagger Version The version of the OpenAPI/Swagger specification for this OpenAPI description (this must be set as 2.0).
Specification Title The title of the specification being described.
Specification Version The version of the specification being described.
Description A short, human readable description of the specification being described using OpenAPI.
Terms of Service The Terms of Service for the API.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Host The host (name or ip) serving the API. For the IMS OpenAPI(2) released files this will be set as "www.imsglobal.org". When used for an implementation this should be changed to the actual host.
Base Path The base path that MUST be used in the endpoint URLs (this is relative to the host).
Schemes The set of transfer protocols that are supported using this API. This is a comma separated list.
Consumes A list of MIME types the APIs can consume. This is a comma separated list.
Produces A list of MIME types the APIs can produce. This is a comma separated list.

Table A3.1b The key to the tabular description of the OpenAPI(3) general information.
Category Definition and Usage
OpenAPI Version The version of the OpenAPI specification for this OpenAPI description (this must be set as 3.0.0).
Specification Title The title of the specification being described.
Specification Version The version of the specification being described.
Description A short, human readable description of the specification being described using OpenAPI.
Terms of Service The URL for the associated Terms of Service for the use of this OpenAPI description.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Servers The host (name or ip) serving the API. For the IMS OpenAPI(3) released files this will be set as "www.imsglobal.org/{base-path}". When used for an implementation this should be changed to the actual host.

toc | top

A3.2 OpenAPI Tags Table Explanation

Table A3.2 provides the key to the tabular description of the OpenAPI tags information (versions 2 and 3).

Table A3.2 The key to the tabular description of the OpenAPI tags information.
Category Definition and Usage
Tag Name The title of the tag (this must be unique). The tags are derived from the set of Interfaces defined in the Behavioral Model.
Description A human readable description of the tag. This is the comment associated with the Interface in the Behavioral Model. The list of associated endpoints assigned to this tag are listed with links to the OpenAPI description of those endpoints.

toc | top

A3.3 OpenAPI Security Table Explanation

Table A3.3 provides the key to the tabular description of the OpenAPI security information.

Table A3.3 The key to the tabular description of the OpenAPI security information.
Category Definition and Usage
Security Label The label by which this mode is identified within the OpenAPI file.
Type The security mode supported. The permitted values are:
  • "basic" - use of basic authentication
  • "apikey" - use of an API key (in the header or as a query parameter)
  • "oauth2" - use of OAuth 2.0
Description A human readable description of the usage of this security scheme.
Flow The flow used by the OAuth2 security scheme. The permitted values in OAS2 are:
  • "implicit" - implicit grant type is used to obtain access tokens (see [RFC 6749] sub-section 4.2)
  • "password" - resource owner password credentials grant type (see [RFC 6749] sub-section 4.3)
  • "application" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "accessCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)

The permitted values in OAS3 are:
  • "clientCredentials" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "authorizationCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)
Token URL The token URL to be used for this flow. A value MUST be supplied for the "password", "application" and "accessMode" flows in OAuth 2.
Authorization URL The authorization URL to be used for this flow. A value MUST be supplied for the "accessMode" flows in OAuth 2.
Refresh URL The refresh URL to be used for this flow. A value MAY be supplied for the "accessMode" flows in OAuth 2.
Scopes The set of labels by which the global scope will be identified.
Global Scope The default identification of the security mode to be applied to an endpoint.

toc | top

A3.4 OpenAPI Paths Table Explanation

Table A3.4 provides the key to the OpenAPI paths information for an HTTP Verb.

Table A3.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb.
Category Definition and Usage
Operation ID A unique identifier for the service operation. This is the name of the operation defined in the Behavioral Model.
Summary A human readable summary of the objective of the service operation.
Tags The tag which has been assigned to this operation. The tag is determined by the Interface under which the operation is defined in the Behavioral Model.
Security and Scopes The list of security modes and scopes that MUST be used enable access to this endpoint.
Privacy Classification This is the classification of the JSON Payload with respect to the nature of the confidentiality as defined in the 1EdTech Privacy framework. All privacy classifications are identified using the property name of "x-1edtech-confidentiality" for each endpoint definition under the "paths" part of the OpenAPI file. The available classifications are:
  • "unrestricted" - there are no privacy concerns in this payload (the default condition when no attributes have been annotated as privacy sensitive);
  • "normal" - the payload contains privacy sensitive information (the default condition when at least one attribute has been annotated as privacy sensitive);
  • "restricted" - the payload contains several attributes that have been annotated as privacy sensitive and/or which act to privide access to other sensitive information;
  • "very restricted" - the payload contains attributes that contain very sensitive information e.g. accessibility, demographics, medical, etc.
Description A human readable summary of the objective of the service operation. This is derived from the associated description of the operation supplied in the Behavioral Model.
Path Placeholders The set of placeholders, and their meaning, in the URL path that will be replaced by the appropriate values in the request calls.
Query Parameters The set of query parameters that are permitted on the request calls. For each query parameter the following information is supplied:
  • Name - the name of the parameter;
  • Type - the data type for the parameter;
  • Multiplicity - the permitted multiplicity of the parameter. This takes the form of:-
    • "0..1" [optional; restricted]
    • "0..*" [optional; unrestricted] - this will normally be achieved as a comma separated list
    • "1" [mandatory; restricted]
    • "1..*" [mandatory; unrestricted] - this will normally be achieved as a comma separated list
  • Default - the default value for the parameter.
Responses The set of query responses that are permitted for the request. For each response the following information is supplied:
  • Name - the name of the response (this is either a valid HTTP code or the value "default");
  • Type - the data type for the response payload (this is linked to the corresponding OpenAPI definition). If there is no payload then this will be denoted by "N/A";
  • Description - the description of the response including any specific status code values.

toc | top

A3.5 OpenAPI Definitions Table Explanation

Table A3.5 provides the key to the OpenAPI definitions information.

Table A3.5 The key to the tabular description of the OpenAPI definitions information.
Category Definition and Usage
Annotations The definition of the complex-type as supplied in the data model definition for the associated class.
Diagram This diagram consists of two types of linked blocks. Straight link lines denote the set of unordered JSON properties. The block forms are:
  • ComplexType Block - a purple and grey shaded rectangle containing the name of the complexType and whether or not the addition of proprietary properties is permitted;
  • Property Blocks - blue and grey shaded rounded rectangles containing the name of the property, its data-type, and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*" or "+" representing optional, required, optionally many or at least). Anything with a multiplicity of more than one is identified as an ARRAY[].
Type Hierachy The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of JSON properties (this line is only displayed when there is a type hierarchy).
Model The set of child properties. This is an ordered list of properties (as per the implied or actual sequence in the object) and accompanied by their multiplicity. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension.
Privacy and Confidentiality The set of annotations for each class/data-type defined in the OpenAPI files. Each of these annotatuions are placed after the list of properties for the class/data-type definition. The annotations are:
  • Privacy Annotations - the list of attributes that have been annotated as containing privacy sensitive information. This list is identified by the property name "x-1edtech-privacy" in the OpenAPI files;
  • Confidentiality Classification - the classification of the class/data-type as a whole with respect to the nature of the confidentiality as defined in the 1EdTech Privacy framework. All privacy classifications are identified using the property name of "x-1edtech-confidentiality" with permitted values of "unrestricted" (the default value), "normal", "restricted" and "veryrestricted"
  • Confidentiality Assignments - the list of attributes that have been annotated under each of the available set of confidentiality classifications. The three set of lists are identified, but displayed only when at least one attribute as been annotated with this classification, by the property names "x-1edtech-confidentiality-normal", "x-1edtech-confidentiality-restrictedl" and "x-1edtech-confidentiality-veryrestrictedl".
Source (OAS2) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 2 documentation [OAS, 14] for the description of the permitted contents for this declaration.
Source (OAS3) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 3 documentation [OAS, 17] for the description of the permitted contents for this declaration.

toc | top

Appendix B OpenAPI File Listings

B1 Listing of the OpenAPI (JSON) Files

B1.1 OpenAPI 2.0 JSON Listing

The OpenAPI 2 (JSON) listing (based upon [OAS, 14]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/openapi/imsafapnpv1p0_openapi2_v1p0p0.json).

{
    "swagger" : "2.0",
    "info" : {
        "version" : "1.0",
        "title" : "Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (JSON) Definition",
        "description" : "The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.",
        "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 1EdTech 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" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "host" : "www.1edtech.org",
    "basePath" : "/ims/afapnp/v1p0",
    "schemes" : [ "http","https" ],
    "tags" : [
        {
            "name" : "AfAPNPRecordManagement",
            "description" : "This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records."
        }
    ],
    "securityDefinitions" : {
        "OAuth2CC" : {
            "type" : "oauth2",
            "description" : "OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.",
            "flow" : "application",
            "tokenUrl" : "https://www.1edtech.org/token",
            "scopes" : {
                "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" : "To enable access to ALL of the READ endpoints for the AfA PNP service.",
                "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" : "To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service.",
                "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" : "The scope that MUST be used for LTI enabled access to the AfA PNP service."
            }
        }
    },
    "paths" : {
        "/afapnprecords" : {
            "get" : {
                "operationId" : "getAllAfAPNPRecords",
                "summary" : "The REST read request message for the getAllAfAPNPRecords() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/AccessForAllPNPRecordSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordForUserForActivity",
                "summary" : "The REST read request message for the getAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAFAPNPRecordDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordForUserForActivity",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "createAfAPNPRecordForUserForActivity",
                "summary" : "The REST create request message for the createAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "afapnpUserRecord",
                        "in" : "body",
                        "description" : "The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserAFAPNPRecordDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "addAfAPNPRecordForUserForActivity",
                "summary" : "The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "afapnpRecord",
                        "in" : "body",
                        "description" : "Tthe AfA PNP record that is to be added to the set of records for the specified user.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAFAPNPRecordDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordSetForUser",
                "summary" : "The REST read request message for the getAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/AccessForAllPNPRecordSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordSetForUser",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "definitions" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "type" : "string"
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "type" : "string"
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "$ref" : "#/definitions/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "$ref" : "#/definitions/LanguageModeDType"
                },
                "sign-language" : {
                    "$ref" : "#/definitions/LanguageModeDType"
                },
                "encouragement" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "$ref" : "#/definitions/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "$ref" : "#/definitions/LineReaderDType"
                },
                "magnification" : {
                    "$ref" : "#/definitions/MagnificationDType"
                },
                "spoken" : {
                    "$ref" : "#/definitions/SpokenDType"
                },
                "tactile" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "braille" : {
                    "$ref" : "#/definitions/BrailleDType"
                },
                "answer-masking" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "$ref" : "#/definitions/LongDescriptionDType"
                },
                "captions" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "environment" : {
                    "$ref" : "#/definitions/EnvironmentDType"
                },
                "transcript" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "$ref" : "#/definitions/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "$ref" : "#/definitions/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "$ref" : "#/definitions/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "$ref" : "#/definitions/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "$ref" : "#/definitions/FeatureSetDType"
                },
                "prohibit-set" : {
                    "$ref" : "#/definitions/FeatureSetDType"
                }
            },
            "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-normal" : [ "extensions" ],
            "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ],
            "additionalProperties" : true
        },
        "AccessForAllPNPRecordDType" : {
            "description" : "This is the container for each of the AfA PNP Records.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "$ref" : "#/definitions/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "access-for-all-pnp" : {
                    "$ref" : "#/definitions/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ],
            "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "AccessForAllPNPRecordSetDType" : {
            "description" : "This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.",
            "type" : "object",
            "properties" : {
                "access-for-all-pnp-record" : {
                    "description" : "This is used to contain the description of each of the individual AfA PNP Records.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AccessForAllPNPRecordDType"
                    }
                }
            },
            "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
            "additionalProperties" : false
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "type" : "string"
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "type" : "string"
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "type" : "string"
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "type" : "string"
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "type" : "string"
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "type" : "string"
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "type" : "string"
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "type" : "string"
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "type" : "string"
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "type" : "string"
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-privacy" : [ "extensions" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "$ref" : "#/definitions/ZoomAmountDType"
                },
                "select-magnification" : {
                    "$ref" : "#/definitions/SelectMagnificationDType"
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "$ref" : "#/definitions/ZoomAmountDType"
                },
                "non-text" : {
                    "$ref" : "#/definitions/ZoomAmountDType"
                }
            },
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "SingleAFAPNPRecordDType" : {
            "description" : "The root container for a single AfA PNP record.",
            "type" : "object",
            "properties" : {
                "access-for-all-pnp-record" : {
                    "$ref" : "#/definitions/AccessForAllPNPRecordDType"
                }
            },
            "required" : [ "access-for-all-pnp-record" ],
            "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
            "additionalProperties" : false
        },
        "SingleUserAFAPNPRecordDType" : {
            "description" : "The root container for the combined user information and their first AfA PNP record.",
            "type" : "object",
            "properties" : {
                "access-for-all-pnp-record" : {
                    "$ref" : "#/definitions/UserAFAPNPRecordDType"
                }
            },
            "required" : [ "access-for-all-pnp-record" ],
            "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "type" : "string"
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "$ref" : "#/definitions/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "x-1edtech-privacy" : [ "extensions" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : true
        },
        "UserAFAPNPRecordDType" : {
            "description" : "This is the container for each of the combined user information and AfA PNP record.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "$ref" : "#/definitions/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "user" : {
                    "$ref" : "#/definitions/UserRecordDType"
                },
                "access-for-all-pnp" : {
                    "$ref" : "#/definitions/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
            "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ],
            "x-1edtech-confidentiality" : "veryrestricted",
            "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ],
            "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The identifier, of the defined type, for the user.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "x-1edtech-privacy" : [ "type","identifier" ],
            "x-1edtech-confidentiality" : "normal",
            "x-1edtech-confidentiality-normal" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserRecordDType" : {
            "description" : "The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.",
            "type" : "object",
            "properties" : {
                "userIds" : {
                    "description" : "This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/UserIdDType"
                    }
                }
            },
            "required" : [ "userIds" ],
            "x-1edtech-privacy" : [ "userIds","extensions" ],
            "x-1edtech-confidentiality" : "normal",
            "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ],
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        },
        "imsx_StatusInfoDType" : {
            "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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",
            "properties" : {
                "imsx_codeMajor" : {
                    "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                    "type" : "string",
                    "enum" : [ "failure","processing","success","unsupported" ]
                },
                "imsx_severity" : {
                    "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                    "type" : "string",
                    "enum" : [ "error","status","warning" ]
                },
                "imsx_description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                    "type" : "string"
                },
                "imsx_codeMinor" : {
                    "$ref" : "#/definitions/imsx_CodeMinorDType"
                }
            },
            "required" : [ "imsx_codeMajor","imsx_severity" ],
            "x-1edtech-confidentiality" : "unrestricted",
            "additionalProperties" : false
        }
    },
    "consumes" : [ "application/json" ],
    "produces" : [ "application/json" ]
}
        

B1.2 OpenAPI 3.0 JSON Listing

The OpenAPI 3 (JSON) listing (based upon [OAS, 17]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/openapi/imsafapnpv1p0_openapi3_v1p0p0.json).

{
    "openapi" : "3.0.0",
    "info" : {
        "version" : "1.0",
        "title" : "Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (JSON) Definition",
        "description" : "The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.",
        "termsOfService" : "https://www.imsglobal.org/license.html",
        "contact" : {
            "name" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech URL is given as a default value).",
                    "default" : "www.1edtech.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/afapnp/v1p0"],
                    "default" : "/ims/afapnp/v1p0"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AfAPNPRecordManagement",
            "description" : "This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records."
        }
    ],
    "paths" : {
        "/afapnprecords" : {
            "get" : {
                "operationId" : "getAllAfAPNPRecords",
                "summary" : "The REST read request message for the getAllAfAPNPRecords() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AccessForAllPNPRecordSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllAfAPNPRecords",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllAfAPNPRecords",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllAfAPNPRecords",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllAfAPNPRecords",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordForUserForActivity",
                "summary" : "The REST read request message for the getAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAFAPNPRecordDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordForUserForActivity",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "createAfAPNPRecordForUserForActivity",
                "summary" : "The REST create request message for the createAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "requestBody" : {
                    "description" : "The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleUserAFAPNPRecordDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "addAfAPNPRecordForUserForActivity",
                "summary" : "The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "requestBody" : {
                    "description" : "Tthe AfA PNP record that is to be added to the set of records for the specified user.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleAFAPNPRecordDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordSetForUser",
                "summary" : "The REST read request message for the getAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AccessForAllPNPRecordSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAfAPNPRecordSetForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAfAPNPRecordSetForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAfAPNPRecordSetForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAfAPNPRecordSetForUser",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordSetForUser",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.1edtech.org/token",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" : "To enable access to ALL of the READ endpoints for the AfA PNP service.",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" : "To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service.",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" : "The scope that MUST be used for LTI enabled access to the AfA PNP service."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AccessForAllPNPDType" : {
                "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
                "type" : "object",
                "properties" : {
                    "access-mode-required" : {
                        "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AccessModeRequiredDType"
                        }
                    },
                    "adaptation-type-required" : {
                        "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AdaptationTypeRequiredDType"
                        }
                    },
                    "at-interoperable" : {
                        "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                        "type" : "boolean"
                    },
                    "educational-complexity-of-adaptation" : {
                        "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "enriched","simplified" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "hazard-avoidance" : {
                        "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                            ]
                        }
                    },
                    "input-requirements" : {
                        "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "full-keyboard-control","full-mouse-control" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "language-of-adaptation" : {
                        "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LanguageModeDType"
                        }
                    },
                    "language-of-interface" : {
                        "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LanguageModeDType"
                        }
                    },
                    "adaptation-detail-required" : {
                        "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AdaptationDetailRequiredDType"
                        }
                    },
                    "adaptation-media-required" : {
                        "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AdaptationMediaRequiredDType"
                        }
                    },
                    "educational-level-of-adaptation" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "linguistic-guidance" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "keyword-emphasis" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "keyword-translation" : {
                        "$ref" : "#/components/schemas/LanguageModeDType"
                    },
                    "simplified-language-portions" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "simplified-graphics" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "item-translation" : {
                        "$ref" : "#/components/schemas/LanguageModeDType"
                    },
                    "sign-language" : {
                        "$ref" : "#/components/schemas/LanguageModeDType"
                    },
                    "encouragement" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "additional-testing-time" : {
                        "$ref" : "#/components/schemas/AdditionalTestingTimeDType"
                    },
                    "line-reader" : {
                        "$ref" : "#/components/schemas/LineReaderDType"
                    },
                    "magnification" : {
                        "$ref" : "#/components/schemas/MagnificationDType"
                    },
                    "spoken" : {
                        "$ref" : "#/components/schemas/SpokenDType"
                    },
                    "tactile" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "braille" : {
                        "$ref" : "#/components/schemas/BrailleDType"
                    },
                    "answer-masking" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "keyboard-directions" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "additional-directions" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "long-description" : {
                        "$ref" : "#/components/schemas/LongDescriptionDType"
                    },
                    "captions" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "environment" : {
                        "$ref" : "#/components/schemas/EnvironmentDType"
                    },
                    "transcript" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "alternative-text" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "audio-description" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "high-contrast" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "layout-single-column" : {
                        "$ref" : "#/components/schemas/ReplacesAccessModeDType"
                    },
                    "text-appearance" : {
                        "$ref" : "#/components/schemas/TextAppearanceDType"
                    },
                    "calculator-on-screen" : {
                        "$ref" : "#/components/schemas/CalculatorDType"
                    },
                    "dictionary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "glossary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "thesaurus-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "homophone-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "note-taking-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "visual-organizer-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "outliner-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "peer-interaction-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spell-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "activate-at-initialization-set" : {
                        "$ref" : "#/components/schemas/FeatureSetDType"
                    },
                    "activate-as-option-set" : {
                        "$ref" : "#/components/schemas/FeatureSetDType"
                    },
                    "prohibit-set" : {
                        "$ref" : "#/components/schemas/FeatureSetDType"
                    }
                },
                "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "extensions" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ],
                "additionalProperties" : true
            },
            "AccessForAllPNPRecordDType" : {
                "description" : "This is the container for each of the AfA PNP Records.",
                "type" : "object",
                "properties" : {
                    "personSourcedId" : {
                        "$ref" : "#/components/schemas/PersonSourcedIdDType"
                    },
                    "activitySourcedId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                        "type" : "string"
                    },
                    "access-for-all-pnp" : {
                        "$ref" : "#/components/schemas/AccessForAllPNPDType"
                    }
                },
                "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
                "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
                "additionalProperties" : false
            },
            "AccessForAllPNPRecordSetDType" : {
                "description" : "This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "description" : "This is used to contain the description of each of the individual AfA PNP Records.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AccessForAllPNPRecordDType"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "AccessModeRequiredDType" : {
                "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationDetailRequiredDType" : {
                "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                                }
                        ]
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationMediaRequiredDType" : {
                "description" : "The container for the requirement for a particular type of media.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationTypeRequiredDType" : {
                "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                                }
                        ]
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdditionalTestingTimeDType" : {
                "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "time-multiplier" : {
                        "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "fixed-minutes" : {
                        "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                        "type" : "integer",
                        "format" : "int32"
                    },
                    "unlimited" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "BrailleDType" : {
                "description" : "The container for the set of preferences for Braille devices.",
                "type" : "object",
                "properties" : {
                    "language" : {
                        "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                        "type" : "string"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "delivery-mode" : {
                        "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "embossed","refreshable" ],
                        "default" : "refreshable"
                    },
                    "grade" : {
                        "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "1","2","3" ],
                        "default" : "2"
                    },
                    "braille-type" : {
                        "description" : "The type of Braille to be used.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "ebae","ueb" ]
                                }
                        ]
                    },
                    "math-type" : {
                        "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "nemeth","ueb" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "CalculatorDType" : {
                "description" : "The data-type for the type of calculator tool.",
                "type" : "object",
                "properties" : {
                    "calculator-type" : {
                        "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                        "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "basic","standard","scientific","graphing" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                        ]
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "value" ],
                "additionalProperties" : false
            },
            "EnvironmentDType" : {
                "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                        "type" : "string"
                    },
                    "medical" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                        "type" : "string"
                    },
                    "software" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                        "type" : "string"
                    },
                    "hardware" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                        "type" : "string"
                    },
                    "breaks" : {
                        "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                        "type" : "boolean"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "FeatureSetDType" : {
                "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
                "type" : "object",
                "properties" : {
                    "linguistic-guidance" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyword-emphasis" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyword-translation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "simplified-language-portions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "simplified-graphics" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "item-translation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "sign-language" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "encouragement" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "additional-testing-time" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "line-reader" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "magnification" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spoken" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "braille" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "answer-masking" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyboard-directions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "additional-directions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "long-description" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "captions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "transcript" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "alternative-text" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "audio-description" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "high-contrast" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "input-requirements" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "language-of-interface" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "layout-single-column" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "text-appearance" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "calculator-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "dictionary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "glossary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "thesaurus-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "homophone-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "note-taking-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "visual-organizer-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "outliner-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "peer-interaction-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spell-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "FontFaceDType" : {
                "description" : "The container for information about the font face to be used.",
                "type" : "object",
                "properties" : {
                    "font-name" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "generic-font-face" : {
                        "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                    }
                },
                "required" : [ "generic-font-face" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LanguageModeDType" : {
                "description" : "The container for the set of preferences related to the language mode.",
                "type" : "object",
                "properties" : {
                    "language" : {
                        "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                        "type" : "string"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "language" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LineReaderDType" : {
                "description" : "The container for the preference settings for line readers.",
                "type" : "object",
                "properties" : {
                    "highlight-color" : {
                        "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LongDescriptionDType" : {
                "description" : "The container for the preferences for the provision of long descriptions.",
                "type" : "object",
                "properties" : {
                    "hide-visually" : {
                        "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                        "type" : "boolean",
                        "default" : true
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "MagnificationDType" : {
                "description" : "The container for the details about the magnification preferences.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "all-content" : {
                        "$ref" : "#/components/schemas/ZoomAmountDType"
                    },
                    "select-magnification" : {
                        "$ref" : "#/components/schemas/SelectMagnificationDType"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "PersonSourcedIdDType" : {
                "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
                "type" : "object",
                "properties" : {
                    "source-system" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                        "type" : "string"
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                        "type" : "string"
                    }
                },
                "required" : [ "source-system","value" ],
                "additionalProperties" : false
            },
            "ReplacesAccessModeDType" : {
                "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "SelectMagnificationDType" : {
                "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
                "type" : "object",
                "properties" : {
                    "text" : {
                        "$ref" : "#/components/schemas/ZoomAmountDType"
                    },
                    "non-text" : {
                        "$ref" : "#/components/schemas/ZoomAmountDType"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "SingleAFAPNPRecordDType" : {
                "description" : "The root container for a single AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "$ref" : "#/components/schemas/AccessForAllPNPRecordDType"
                    }
                },
                "required" : [ "access-for-all-pnp-record" ],
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "SingleUserAFAPNPRecordDType" : {
                "description" : "The root container for the combined user information and their first AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "$ref" : "#/components/schemas/UserAFAPNPRecordDType"
                    }
                },
                "required" : [ "access-for-all-pnp-record" ],
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "SpokenDType" : {
                "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "reading-type" : {
                        "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "computer-read-aloud","screen-reader" ],
                        "default" : "screen-reader"
                    },
                    "restriction-type" : {
                        "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "anyOf" : [
                                {
                                    "type" : "string",
                                    "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                                },
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                }
                            ]
                        }
                    },
                    "speech-rate" : {
                        "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                        "type" : "integer",
                        "format" : "int32",
                        "default" : "180"
                    },
                    "pitch" : {
                        "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 0.5
                    },
                    "volume" : {
                        "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 0.5
                    },
                    "link-indication" : {
                        "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                    },
                    "typing-echo" : {
                        "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "characters","characters-and-words","none","words" ]
                    }
                },
                "required" : [ "reading-type","link-indication","typing-echo" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "TextAppearanceDType" : {
                "description" : "The container for the set of preferences for the appearance of text on a display.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "color-theme" : {
                        "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = String.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                                }
                        ]
                    },
                    "background-color" : {
                        "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "font-color" : {
                        "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "font-size" : {
                        "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 12.0
                    },
                    "font-face" : {
                        "$ref" : "#/components/schemas/FontFaceDType"
                    },
                    "line-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The line spacing.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "line-height" : {
                        "description" : "Model Primitive Datatype = Float. The line height.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "letter-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "uniform-font-sizing" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "word-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "word-wrapping" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "UserAFAPNPRecordDType" : {
                "description" : "This is the container for each of the combined user information and AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "personSourcedId" : {
                        "$ref" : "#/components/schemas/PersonSourcedIdDType"
                    },
                    "activitySourcedId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                        "type" : "string"
                    },
                    "user" : {
                        "$ref" : "#/components/schemas/UserRecordDType"
                    },
                    "access-for-all-pnp" : {
                        "$ref" : "#/components/schemas/AccessForAllPNPDType"
                    }
                },
                "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
                "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
                "additionalProperties" : false
            },
            "UserIdDType" : {
                "description" : "This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                        "type" : "string"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The identifier, of the defined type, for the user.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","identifier" ],
                "x-1edtech-privacy" : [ "type","identifier" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "type","identifier" ],
                "additionalProperties" : false
            },
            "UserRecordDType" : {
                "description" : "The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.",
                "type" : "object",
                "properties" : {
                    "userIds" : {
                        "description" : "This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/UserIdDType"
                        }
                    }
                },
                "required" : [ "userIds" ],
                "x-1edtech-privacy" : [ "userIds","extensions" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ],
                "additionalProperties" : true
            },
            "ZoomAmountDType" : {
                "description" : "A data-type for amount of zoom i.e. magnification.",
                "type" : "object",
                "properties" : {
                    "zoom-amount" : {
                        "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "value" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                    "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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",
                "properties" : {
                    "imsx_codeMajor" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "failure","processing","success","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "error","status","warning" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_codeMinor" : {
                        "$ref" : "#/components/schemas/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            }
        }
    }
}
        

B1.3 OpenAPI 3.1 JSON Listing

The OpenAPI 3.1 (JSON) listing (based upon [OAS, 21]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/openapi/imsafapnpv1p0_openapi3p1_v1p0p0.json).

{
    "openapi" : "3.1.0",
    "info" : {
        "version" : "1.0",
        "title" : "Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (JSON) Definition",
        "description" : "The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.",
        "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 1EdTech 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" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech URL is given as a default value).",
                    "default" : "www.1edtech.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/afapnp/v1p0"],
                    "default" : "/ims/afapnp/v1p0"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AfAPNPRecordManagement",
            "description" : "This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records."
        }
    ],
    "paths" : {
        "/afapnprecords" : {
            "get" : {
                "operationId" : "getAllAfAPNPRecords",
                "summary" : "The REST read request message for the getAllAfAPNPRecords() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/AccessForAllPNPRecordSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordForUserForActivity",
                "summary" : "The REST read request message for the getAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAFAPNPRecordDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordForUserForActivity",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "createAfAPNPRecordForUserForActivity",
                "summary" : "The REST create request message for the createAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "afapnpUserRecord",
                        "in" : "body",
                        "description" : "The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleUserAFAPNPRecordDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "addAfAPNPRecordForUserForActivity",
                "summary" : "The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "activitySourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "afapnpRecord",
                        "in" : "body",
                        "description" : "Tthe AfA PNP record that is to be added to the set of records for the specified user.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAFAPNPRecordDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/users/{userSourcedId}/afapnprecords" : {
            "get" : {
                "operationId" : "getAfAPNPRecordSetForUser",
                "summary" : "The REST read request message for the getAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "responses" : {
                    "200" : {
                        "description" : "The requested read has been fully serviced and all of the required data returned.",
                        "schema" : {
                            "$ref" : "#/definitions/AccessForAllPNPRecordSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "400" : {
                        "description" : "Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAfAPNPRecordSetForUser",
                "summary" : "The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.",
                "tags" : [ "AfAPNPRecordManagement" ],
                "description" : "To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.",
                "parameters" : [
                    {
                        "name" : "userSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this user. This is the interoperability identifier for the user.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly"
                        ]
                    }
                ],
                "x-1edtech-confidentiality" : "undefinedverbtype",
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default payload when none of the other HTTP codes are to be supplied.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.1edtech.org/token",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly" : "To enable access to ALL of the READ endpoints for the AfA PNP service.",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly" : "To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service.",
                            "https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly" : "The scope that MUST be used for LTI enabled access to the AfA PNP service."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AccessForAllPNPDType" : {
                "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
                "type" : "object",
                "properties" : {
                    "access-mode-required" : {
                        "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AccessModeRequiredDType"
                        }
                    },
                    "adaptation-type-required" : {
                        "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AdaptationTypeRequiredDType"
                        }
                    },
                    "at-interoperable" : {
                        "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                        "type" : "boolean"
                    },
                    "educational-complexity-of-adaptation" : {
                        "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                        "type" : "string"
                    },
                    "hazard-avoidance" : {
                        "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "input-requirements" : {
                        "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                        "type" : "string"
                    },
                    "language-of-adaptation" : {
                        "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LanguageModeDType"
                        }
                    },
                    "language-of-interface" : {
                        "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LanguageModeDType"
                        }
                    },
                    "adaptation-detail-required" : {
                        "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AdaptationDetailRequiredDType"
                        }
                    },
                    "adaptation-media-required" : {
                        "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AdaptationMediaRequiredDType"
                        }
                    },
                    "educational-level-of-adaptation" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "linguistic-guidance" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "keyword-emphasis" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "keyword-translation" : {
                        "$ref" : "#/definitions/LanguageModeDType"
                    },
                    "simplified-language-portions" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "simplified-graphics" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "item-translation" : {
                        "$ref" : "#/definitions/LanguageModeDType"
                    },
                    "sign-language" : {
                        "$ref" : "#/definitions/LanguageModeDType"
                    },
                    "encouragement" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "additional-testing-time" : {
                        "$ref" : "#/definitions/AdditionalTestingTimeDType"
                    },
                    "line-reader" : {
                        "$ref" : "#/definitions/LineReaderDType"
                    },
                    "magnification" : {
                        "$ref" : "#/definitions/MagnificationDType"
                    },
                    "spoken" : {
                        "$ref" : "#/definitions/SpokenDType"
                    },
                    "tactile" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "braille" : {
                        "$ref" : "#/definitions/BrailleDType"
                    },
                    "answer-masking" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "keyboard-directions" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "additional-directions" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "long-description" : {
                        "$ref" : "#/definitions/LongDescriptionDType"
                    },
                    "captions" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "environment" : {
                        "$ref" : "#/definitions/EnvironmentDType"
                    },
                    "transcript" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "alternative-text" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "audio-description" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "high-contrast" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "layout-single-column" : {
                        "$ref" : "#/definitions/ReplacesAccessModeDType"
                    },
                    "text-appearance" : {
                        "$ref" : "#/definitions/TextAppearanceDType"
                    },
                    "calculator-on-screen" : {
                        "$ref" : "#/definitions/CalculatorDType"
                    },
                    "dictionary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "glossary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "thesaurus-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "homophone-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "note-taking-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "visual-organizer-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "outliner-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "peer-interaction-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spell-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "activate-at-initialization-set" : {
                        "$ref" : "#/definitions/FeatureSetDType"
                    },
                    "activate-as-option-set" : {
                        "$ref" : "#/definitions/FeatureSetDType"
                    },
                    "prohibit-set" : {
                        "$ref" : "#/definitions/FeatureSetDType"
                    }
                },
                "x-1edtech-privacy" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set","extensions" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "extensions" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-mode-required","adaptation-type-required","at-interoperable","educational-complexity-of-adaptation","hazard-avoidance","input-requirements","language-of-adaptation","language-of-interface","adaptation-detail-required","adaptation-media-required","educational-level-of-adaptation","linguistic-guidance","keyword-emphasis","keyword-translation","simplified-language-portions","simplified-graphics","item-translation","sign-language","encouragement","additional-testing-time","line-reader","magnification","spoken","tactile","braille","answer-masking","keyboard-directions","additional-directions","long-description","captions","environment","transcript","alternative-text","audio-description","high-contrast","layout-single-column","text-appearance","calculator-on-screen","dictionary-on-screen","glossary-on-screen","thesaurus-on-screen","homophone-checker-on-screen","note-taking-on-screen","visual-organizer-on-screen","outliner-on-screen","peer-interaction-on-screen","spell-checker-on-screen","activate-at-initialization-set","activate-as-option-set","prohibit-set" ],
                "additionalProperties" : true
            },
            "AccessForAllPNPRecordDType" : {
                "description" : "This is the container for each of the AfA PNP Records.",
                "type" : "object",
                "properties" : {
                    "personSourcedId" : {
                        "$ref" : "#/definitions/PersonSourcedIdDType"
                    },
                    "activitySourcedId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                        "type" : "string"
                    },
                    "access-for-all-pnp" : {
                        "$ref" : "#/definitions/AccessForAllPNPDType"
                    }
                },
                "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
                "x-1edtech-privacy" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "personSourcedId","activitySourcedId" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
                "additionalProperties" : false
            },
            "AccessForAllPNPRecordSetDType" : {
                "description" : "This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "description" : "This is used to contain the description of each of the individual AfA PNP Records.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AccessForAllPNPRecordDType"
                        }
                    }
                },
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "AccessModeRequiredDType" : {
                "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                        "type" : "string"
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                        "type" : "string"
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationDetailRequiredDType" : {
                "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                        "type" : "string"
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                        "type" : "string"
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationMediaRequiredDType" : {
                "description" : "The container for the requirement for a particular type of media.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                        "type" : "string"
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                        "type" : "string"
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdaptationTypeRequiredDType" : {
                "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
                "type" : "object",
                "properties" : {
                    "existing-access-mode" : {
                        "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                        "type" : "string"
                    },
                    "adaptation-request" : {
                        "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                        "type" : "string"
                    }
                },
                "required" : [ "existing-access-mode","adaptation-request" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "AdditionalTestingTimeDType" : {
                "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "time-multiplier" : {
                        "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "fixed-minutes" : {
                        "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                        "type" : "integer",
                        "format" : "int32"
                    },
                    "unlimited" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "BrailleDType" : {
                "description" : "The container for the set of preferences for Braille devices.",
                "type" : "object",
                "properties" : {
                    "language" : {
                        "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                        "type" : "string"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "delivery-mode" : {
                        "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "embossed","refreshable" ],
                        "default" : "refreshable"
                    },
                    "grade" : {
                        "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "1","2","3" ],
                        "default" : "2"
                    },
                    "braille-type" : {
                        "description" : "The type of Braille to be used.",
                        "type" : "string"
                    },
                    "math-type" : {
                        "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                        "type" : "string"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "CalculatorDType" : {
                "description" : "The data-type for the type of calculator tool.",
                "type" : "object",
                "properties" : {
                    "calculator-type" : {
                        "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                        "type" : "string"
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "value" ],
                "additionalProperties" : false
            },
            "EnvironmentDType" : {
                "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                        "type" : "string"
                    },
                    "medical" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                        "type" : "string"
                    },
                    "software" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                        "type" : "string"
                    },
                    "hardware" : {
                        "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                        "type" : "string"
                    },
                    "breaks" : {
                        "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                        "type" : "boolean"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "FeatureSetDType" : {
                "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
                "type" : "object",
                "properties" : {
                    "linguistic-guidance" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyword-emphasis" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyword-translation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "simplified-language-portions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "simplified-graphics" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "item-translation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "sign-language" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "encouragement" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "additional-testing-time" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "line-reader" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "magnification" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spoken" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "braille" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "answer-masking" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "keyboard-directions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "additional-directions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "long-description" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "captions" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "transcript" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "alternative-text" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "audio-description" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "high-contrast" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "input-requirements" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "language-of-interface" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "layout-single-column" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "text-appearance" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "calculator-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "dictionary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "glossary-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "thesaurus-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "homophone-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "note-taking-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "visual-organizer-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "outliner-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "peer-interaction-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "spell-checker-on-screen" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "FontFaceDType" : {
                "description" : "The container for information about the font face to be used.",
                "type" : "object",
                "properties" : {
                    "font-name" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "generic-font-face" : {
                        "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                    }
                },
                "required" : [ "generic-font-face" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LanguageModeDType" : {
                "description" : "The container for the set of preferences related to the language mode.",
                "type" : "object",
                "properties" : {
                    "language" : {
                        "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                        "type" : "string"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "language" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LineReaderDType" : {
                "description" : "The container for the preference settings for line readers.",
                "type" : "object",
                "properties" : {
                    "highlight-color" : {
                        "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "LongDescriptionDType" : {
                "description" : "The container for the preferences for the provision of long descriptions.",
                "type" : "object",
                "properties" : {
                    "hide-visually" : {
                        "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                        "type" : "boolean",
                        "default" : true
                    },
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "MagnificationDType" : {
                "description" : "The container for the details about the magnification preferences.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "all-content" : {
                        "$ref" : "#/definitions/ZoomAmountDType"
                    },
                    "select-magnification" : {
                        "$ref" : "#/definitions/SelectMagnificationDType"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "PersonSourcedIdDType" : {
                "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
                "type" : "object",
                "properties" : {
                    "source-system" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                        "type" : "string"
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                        "type" : "string"
                    }
                },
                "required" : [ "source-system","value" ],
                "additionalProperties" : false
            },
            "ReplacesAccessModeDType" : {
                "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "SelectMagnificationDType" : {
                "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
                "type" : "object",
                "properties" : {
                    "text" : {
                        "$ref" : "#/definitions/ZoomAmountDType"
                    },
                    "non-text" : {
                        "$ref" : "#/definitions/ZoomAmountDType"
                    }
                },
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "SingleAFAPNPRecordDType" : {
                "description" : "The root container for a single AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "$ref" : "#/definitions/AccessForAllPNPRecordDType"
                    }
                },
                "required" : [ "access-for-all-pnp-record" ],
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "SingleUserAFAPNPRecordDType" : {
                "description" : "The root container for the combined user information and their first AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "access-for-all-pnp-record" : {
                        "$ref" : "#/definitions/UserAFAPNPRecordDType"
                    }
                },
                "required" : [ "access-for-all-pnp-record" ],
                "x-1edtech-privacy" : [ "access-for-all-pnp-record" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp-record" ],
                "additionalProperties" : false
            },
            "SpokenDType" : {
                "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "reading-type" : {
                        "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "computer-read-aloud","screen-reader" ],
                        "default" : "screen-reader"
                    },
                    "restriction-type" : {
                        "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "type" : "string"
                        }
                    },
                    "speech-rate" : {
                        "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                        "type" : "integer",
                        "format" : "int32",
                        "default" : "180"
                    },
                    "pitch" : {
                        "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 0.5
                    },
                    "volume" : {
                        "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 0.5
                    },
                    "link-indication" : {
                        "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                    },
                    "typing-echo" : {
                        "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                        "type" : "string",
                        "enum" : [ "characters","characters-and-words","none","words" ]
                    }
                },
                "required" : [ "reading-type","link-indication","typing-echo" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "TextAppearanceDType" : {
                "description" : "The container for the set of preferences for the appearance of text on a display.",
                "type" : "object",
                "properties" : {
                    "replace-access-mode-auditory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-color" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-item-size" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-olfactory" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-orientation" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-position" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-tactile" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-text-on-image" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-textual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "replace-access-mode-visual" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "color-theme" : {
                        "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                        "type" : "string"
                    },
                    "background-color" : {
                        "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "font-color" : {
                        "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                        "type" : "string",
                        "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                    },
                    "font-size" : {
                        "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                        "type" : "number",
                        "format" : "float",
                        "default" : 12.0
                    },
                    "font-face" : {
                        "$ref" : "#/definitions/FontFaceDType"
                    },
                    "line-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The line spacing.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "line-height" : {
                        "description" : "Model Primitive Datatype = Float. The line height.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "letter-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "uniform-font-sizing" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    },
                    "word-spacing" : {
                        "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "word-wrapping" : {
                        "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "x-1edtech-privacy" : [ "extensions" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : true
            },
            "UserAFAPNPRecordDType" : {
                "description" : "This is the container for each of the combined user information and AfA PNP record.",
                "type" : "object",
                "properties" : {
                    "personSourcedId" : {
                        "$ref" : "#/definitions/PersonSourcedIdDType"
                    },
                    "activitySourcedId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                        "type" : "string"
                    },
                    "user" : {
                        "$ref" : "#/definitions/UserRecordDType"
                    },
                    "access-for-all-pnp" : {
                        "$ref" : "#/definitions/AccessForAllPNPDType"
                    }
                },
                "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
                "x-1edtech-privacy" : [ "personSourcedId","user","access-for-all-pnp" ],
                "x-1edtech-confidentiality" : "veryrestricted",
                "x-1edtech-confidentiality-normal" : [ "personSourcedId","user" ],
                "x-1edtech-confidentiality-veryrestricted" : [ "access-for-all-pnp" ],
                "additionalProperties" : false
            },
            "UserIdDType" : {
                "description" : "This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                "type" : "object",
                "properties" : {
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                        "type" : "string"
                    },
                    "identifier" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The identifier, of the defined type, for the user.",
                        "type" : "string"
                    }
                },
                "required" : [ "type","identifier" ],
                "x-1edtech-privacy" : [ "type","identifier" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "type","identifier" ],
                "additionalProperties" : false
            },
            "UserRecordDType" : {
                "description" : "The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.",
                "type" : "object",
                "properties" : {
                    "userIds" : {
                        "description" : "This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/UserIdDType"
                        }
                    }
                },
                "required" : [ "userIds" ],
                "x-1edtech-privacy" : [ "userIds","extensions" ],
                "x-1edtech-confidentiality" : "normal",
                "x-1edtech-confidentiality-normal" : [ "userIds","extensions" ],
                "additionalProperties" : true
            },
            "ZoomAmountDType" : {
                "description" : "A data-type for amount of zoom i.e. magnification.",
                "type" : "object",
                "properties" : {
                    "zoom-amount" : {
                        "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "value" : {
                        "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                        "type" : "string",
                        "enum" : [ "active" ]
                    }
                },
                "required" : [ "value" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                    "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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",
                "properties" : {
                    "imsx_codeMajor" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "failure","processing","success","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "error","status","warning" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_codeMinor" : {
                        "$ref" : "#/definitions/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "x-1edtech-confidentiality" : "unrestricted",
                "additionalProperties" : false
            }
        }
    }
}
        

B2 Listing of the OpenAPI (YAML) Files

B2.1 OpenAPI 2.0 YAML Listing

The OpenAPI 2 (YAML) listing (based upon [OAS, 14]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/openapi/imsafapnpv1p0_openapi2_v1p0p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           1st May, 2024
# Version:        1.0
# Status:         1EdTech Candidate Final
# Description:    The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
# 
# History:        This is the first release of the Access for All Personal Needs and Preferences (AfAPNP) Service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the 1EdTech Access for All Personal Needs and Preferences (AfAPNP) Service Version 1.0
#                 found at https://www.1edtech.org/afapnp and the original 1EdTech schema binding or code base at
#                 https://www.1edtech.org/afapnp.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on 1EdTech procedures with respect to rights in 1EdTech 
#                 specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) 1EdTech Consortium 1999-2024. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.org/license.html.
# 
#                 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 1EdTech or its successors or assigns.
# 
#                 THIS SPECIFICATION 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st October, 2022
# Autogen Engineer: Colin Smythe (1EdTech)
# Autogen Date:     2024-04-23
# 
# 1EdTech Auto-generation Binding Tool-kit (E-BAT)
# ================================================
# This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT). While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool. Permission is given to make use of this tool. 1EdTech makes no
# claim on the materials created by third party users of this tool. Details on how to use this tool
# are contained in the 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
# https://www.1edtech.org.
# 
# Tool Copyright:  2012-2024  (c) 1EdTech Consortium Inc. All Rights Reserved.
# 
# #####################################################################################

swagger: '2.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (YAML) Definition
    description: The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
    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: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

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

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AfAPNPRecordManagement
      description: |
        This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records.

#####################################################################################
#                                 Security                                          #
#####################################################################################
securityDefinitions:
    OAuth2CC:
        type: oauth2
        description: OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.
        flow: application
        tokenUrl: https://www.1edtech.org/token
        scopes: 
            https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly: To enable access to ALL of the READ endpoints for the AfA PNP service.
            https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly: To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service.
            https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly: The scope that MUST be used for LTI enabled access to the AfA PNP service.


#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /afapnprecords:
        get:
            operationId: getAllAfAPNPRecords
            summary: The REST read request message for the getAllAfAPNPRecords() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordForUserForActivity
            summary: The REST read request message for the getAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/SingleAFAPNPRecordDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordForUserForActivity
            summary: The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: createAfAPNPRecordForUserForActivity
            summary: The REST create request message for the createAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: afapnpUserRecord
                  in: body
                  description: |
                      The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleUserAFAPNPRecordDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        post:
            operationId: addAfAPNPRecordForUserForActivity
            summary: The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: afapnpRecord
                  in: body
                  description: |
                      Tthe AfA PNP record that is to be added to the set of records for the specified user.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAFAPNPRecordDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /users/{userSourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordSetForUser
            summary: The REST read request message for the getAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordSetForUser
            summary: The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AccessForAllPNPDType:
        description: |
            A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.
        type: object
        x-1edtech-privacy:
            - access-mode-required
            - adaptation-type-required
            - at-interoperable
            - educational-complexity-of-adaptation
            - hazard-avoidance
            - input-requirements
            - language-of-adaptation
            - language-of-interface
            - adaptation-detail-required
            - adaptation-media-required
            - educational-level-of-adaptation
            - linguistic-guidance
            - keyword-emphasis
            - keyword-translation
            - simplified-language-portions
            - simplified-graphics
            - item-translation
            - sign-language
            - encouragement
            - additional-testing-time
            - line-reader
            - magnification
            - spoken
            - tactile
            - braille
            - answer-masking
            - keyboard-directions
            - additional-directions
            - long-description
            - captions
            - environment
            - transcript
            - alternative-text
            - audio-description
            - high-contrast
            - layout-single-column
            - text-appearance
            - calculator-on-screen
            - dictionary-on-screen
            - glossary-on-screen
            - thesaurus-on-screen
            - homophone-checker-on-screen
            - note-taking-on-screen
            - visual-organizer-on-screen
            - outliner-on-screen
            - peer-interaction-on-screen
            - spell-checker-on-screen
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
            - extensions
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - text-appearance
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
            - extensions
        x-1edtech-confidentiality-veryrestricted: 
            - access-mode-required
            - adaptation-type-required
            - at-interoperable
            - educational-complexity-of-adaptation
            - hazard-avoidance
            - input-requirements
            - language-of-adaptation
            - language-of-interface
            - adaptation-detail-required
            - adaptation-media-required
            - educational-level-of-adaptation
            - linguistic-guidance
            - keyword-emphasis
            - keyword-translation
            - simplified-language-portions
            - simplified-graphics
            - item-translation
            - sign-language
            - encouragement
            - additional-testing-time
            - line-reader
            - magnification
            - spoken
            - tactile
            - braille
            - answer-masking
            - keyboard-directions
            - additional-directions
            - long-description
            - captions
            - environment
            - transcript
            - alternative-text
            - audio-description
            - high-contrast
            - layout-single-column
            - text-appearance
            - calculator-on-screen
            - dictionary-on-screen
            - glossary-on-screen
            - thesaurus-on-screen
            - homophone-checker-on-screen
            - note-taking-on-screen
            - visual-organizer-on-screen
            - outliner-on-screen
            - peer-interaction-on-screen
            - spell-checker-on-screen
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
        properties: 
            access-mode-required: 
                description: |
                    Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AccessModeRequiredDType"
            adaptation-type-required: 
                description: |
                    Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationTypeRequiredDType"
            at-interoperable: 
                description: A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible. Model Primitive Datatype = Boolean.
                type: boolean
            educational-complexity-of-adaptation: 
                description: |
                    A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                type: string
            hazard-avoidance: 
                description: |
                    A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                type: array
                minItems: 0
                items: 
                    type: string
            input-requirements: 
                description: |
                    Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                type: string
            language-of-adaptation: 
                description: |
                    A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LanguageModeDType"
            language-of-interface: 
                description: |
                    A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LanguageModeDType"
            adaptation-detail-required: 
                description: |
                    This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationDetailRequiredDType"
            adaptation-media-required: 
                description: |
                    This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationMediaRequiredDType"
            educational-level-of-adaptation: 
                description: A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            linguistic-guidance: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyword-emphasis: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyword-translation: 
                $ref: "#/definitions/LanguageModeDType"
            simplified-language-portions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            simplified-graphics: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            item-translation: 
                $ref: "#/definitions/LanguageModeDType"
            sign-language: 
                $ref: "#/definitions/LanguageModeDType"
            encouragement: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            additional-testing-time: 
                $ref: "#/definitions/AdditionalTestingTimeDType"
            line-reader: 
                $ref: "#/definitions/LineReaderDType"
            magnification: 
                $ref: "#/definitions/MagnificationDType"
            spoken: 
                $ref: "#/definitions/SpokenDType"
            tactile: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            braille: 
                $ref: "#/definitions/BrailleDType"
            answer-masking: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyboard-directions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            additional-directions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            long-description: 
                $ref: "#/definitions/LongDescriptionDType"
            captions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            environment: 
                $ref: "#/definitions/EnvironmentDType"
            transcript: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            alternative-text: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            audio-description: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            high-contrast: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            layout-single-column: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            text-appearance: 
                $ref: "#/definitions/TextAppearanceDType"
            calculator-on-screen: 
                $ref: "#/definitions/CalculatorDType"
            dictionary-on-screen: 
                description: The presence of this attribute makes available, on screen, the dictionary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            glossary-on-screen: 
                description: The presence of this attribute makes available, on screen, the glossary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            thesaurus-on-screen: 
                description: The presence of this attribute makes available, on screen, the thesaurus tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            homophone-checker-on-screen: 
                description: The presence of this attribute makes available, on screen, the homophone checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            note-taking-on-screen: 
                description: The presence of this attribute makes available, on screen, the note taking tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            visual-organizer-on-screen: 
                description: The presence of this attribute makes available, on screen, the visual organizer tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            outliner-on-screen: 
                description: The presence of this attribute makes available, on screen, the outliner tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            peer-interaction-on-screen: 
                description: The presence of this attribute makes available, on screen, the peer interaction tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spell-checker-on-screen: 
                description: The presence of this attribute makes available, on screen, the spell checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            activate-at-initialization-set: 
                $ref: "#/definitions/FeatureSetDType"
            activate-as-option-set: 
                $ref: "#/definitions/FeatureSetDType"
            prohibit-set: 
                $ref: "#/definitions/FeatureSetDType"
        additionalProperties: true
    AccessForAllPNPRecordDType:
        description: |
            This is the container for each of the AfA PNP Records.
        type: object
        required: 
            - personSourcedId
            - activitySourcedId
            - access-for-all-pnp
        x-1edtech-privacy:
            - personSourcedId
            - activitySourcedId
            - access-for-all-pnp
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - personSourcedId
            - activitySourcedId
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp
        properties: 
            personSourcedId: 
                $ref: "#/definitions/PersonSourcedIdDType"
            activitySourcedId: 
                description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                type: string
            access-for-all-pnp: 
                $ref: "#/definitions/AccessForAllPNPDType"
        additionalProperties: false
    AccessForAllPNPRecordSetDType:
        description: |
            This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.
        type: object
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                description: |
                    This is used to contain the description of each of the individual AfA PNP Records.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AccessForAllPNPRecordDType"
        additionalProperties: false
    AccessModeRequiredDType:
        description: |
            The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AccessMode vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AccessMode vocabulary, for the new adaptation access mode.
                type: string
        additionalProperties: false
    AdaptationDetailRequiredDType:
        description: |
            The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. 
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationDetail vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                type: string
        additionalProperties: false
    AdaptationMediaRequiredDType:
        description: |
            The container for the requirement for a particular type of media.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationMedia vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                type: string
        additionalProperties: false
    AdaptationTypeRequiredDType:
        description: |
            Nature or genre of the adaptation required as a replacement for a specific access mode.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationType vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                type: string
        additionalProperties: false
    AdditionalTestingTimeDType:
        description: |
            The container for the set of additional testing time preferences. Only one of the available options can be selected.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            time-multiplier: 
                description: Providing the additional testing time as a multiplier of the set time. Model Primitive Datatype = Float.
                type: number
                format: float
            fixed-minutes: 
                description: Providing the additional testing time as an additional number of minutes. Model Primitive Datatype = Integer.
                type: integer
                format: int32
            unlimited: 
                description: Providing the additional testing time as an unlimited time. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    BrailleDType:
        description: |
            The container for the set of preferences for Braille devices.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            language: 
                description: The native language, defined as per [RFC 3066], to which the Braille conversion will be applied. Model Primitive Datatype = Language.
                type: string
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            delivery-mode: 
                description: |
                    The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                type: string
                enum: 
                   - refreshable
                   - embossed
                default: refreshable
            grade: 
                description: |
                    The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                type: string
                enum: 
                   - 1
                   - 2
                   - 3
                default: 2
            braille-type: 
                description: |
                    The type of Braille to be used.
                type: string
            math-type: 
                description: |
                    The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                type: string
        additionalProperties: false
    CalculatorDType:
        description: |
            The data-type for the type of calculator tool.
        type: object
        required: 
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            calculator-type: 
                description: |
                    The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                type: string
            value: 
                description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                type: string
                enum: 
                   - active
        additionalProperties: false
    EnvironmentDType:
        description: |
            The container for the set of preferences for the environment within which the learning exerience is to take place.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            description: 
                description: A human-readable description of the accessibility support environment. Model Primitive Datatype = NormalizedString.
                type: string
            medical: 
                description: A human-readable description of the available medical support. Model Primitive Datatype = NormalizedString.
                type: string
            software: 
                description: A human-readable description of the available accessibility software. Model Primitive Datatype = NormalizedString.
                type: string
            hardware: 
                description: A human-readable description of the available accessibility hardware. Model Primitive Datatype = NormalizedString.
                type: string
            breaks: 
                description: A human-readable description of the available breaks i.e. moments away for the activity itself. Model Primitive Datatype = Boolean.
                type: boolean
        additionalProperties: false
    FeatureSetDType:
        description: |
            This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.
        type: object
        x-1edtech-privacy:
            - extensions
        x-1edtech-confidentiality: unrestricted
        x-1edtech-confidentiality-normal: 
            - extensions
        properties: 
            linguistic-guidance: 
                description: Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyword-emphasis: 
                description: Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyword-translation: 
                description: Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            simplified-language-portions: 
                description: Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            simplified-graphics: 
                description: Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            item-translation: 
                description: Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            sign-language: 
                description: Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            encouragement: 
                description: Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            additional-testing-time: 
                description: Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            line-reader: 
                description: Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            magnification: 
                description: Used to indicate that the corresponding 'magnification' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spoken: 
                description: Used to indicate that the corresponding 'spoken' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            tactile: 
                description: Used to indicate that the corresponding 'tactile' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            braille: 
                description: Used to indicate that the corresponding 'braille' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            answer-masking: 
                description: Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyboard-directions: 
                description: Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            additional-directions: 
                description: Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            long-description: 
                description: Used to indicate that the corresponding 'long-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            captions: 
                description: Used to indicate that the corresponding 'captions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            transcript: 
                description: Used to indicate that the corresponding 'transcript' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            alternative-text: 
                description: Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            audio-description: 
                description: Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            high-contrast: 
                description: Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            input-requirements: 
                description: Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            language-of-interface: 
                description: Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            layout-single-column: 
                description: Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            text-appearance: 
                description: Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            calculator-on-screen: 
                description: Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            dictionary-on-screen: 
                description: Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            glossary-on-screen: 
                description: Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            thesaurus-on-screen: 
                description: Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            homophone-checker-on-screen: 
                description: Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            note-taking-on-screen: 
                description: Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            visual-organizer-on-screen: 
                description: Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            outliner-on-screen: 
                description: Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            peer-interaction-on-screen: 
                description: Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spell-checker-on-screen: 
                description: Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: true
    FontFaceDType:
        description: |
            The container for information about the font face to be used.
        type: object
        required: 
            - generic-font-face
        x-1edtech-confidentiality: unrestricted
        properties: 
            font-name: 
                description: The name of the font to be used for text display. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            generic-font-face: 
                description: |
                    The generic font face to be use for text. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - serif
                   - sans serif
                   - monospaced
                   - cursive
                   - fantasy
        additionalProperties: false
    LanguageModeDType:
        description: |
            The container for the set of preferences related to the language mode.
        type: object
        required: 
            - language
        x-1edtech-confidentiality: unrestricted
        properties: 
            language: 
                description: Identification of the language. The permitted value is based upon [RFC 3066]. Model Primitive Datatype = Language.
                type: string
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    LineReaderDType:
        description: |
            The container for the preference settings for line readers.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            highlight-color: 
                description: The highlight color to be used by the display when identifying the position of the line reader. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    LongDescriptionDType:
        description: |
            The container for the preferences for the provision of long descriptions.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            hide-visually: 
                description: Defines whether or not the long description is hidden from view as a default setting. Model Primitive Datatype = Boolean.
                type: boolean
                default: true
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    MagnificationDType:
        description: |
            The container for the details about the magnification preferences.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            all-content: 
                $ref: "#/definitions/ZoomAmountDType"
            select-magnification: 
                $ref: "#/definitions/SelectMagnificationDType"
        additionalProperties: false
    PersonSourcedIdDType:
        description: |
            The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.
        type: object
        required: 
            - source-system
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            source-system: 
                description: The source system that was responsible for the allocation of the 'sourcedId' for the Person. Model Primitive Datatype = NormalizedString.
                type: string
            value: 
                description: Model Derived-Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    ReplacesAccessModeDType:
        description: |
            This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    SelectMagnificationDType:
        description: |
            This is used to contain the zoom magnification factors for the display of text and non-text.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            text: 
                $ref: "#/definitions/ZoomAmountDType"
            non-text: 
                $ref: "#/definitions/ZoomAmountDType"
        additionalProperties: false
    SingleAFAPNPRecordDType:
        description: |
            The root container for a single AfA PNP record.
        type: object
        required: 
            - access-for-all-pnp-record
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                $ref: "#/definitions/AccessForAllPNPRecordDType"
        additionalProperties: false
    SingleUserAFAPNPRecordDType:
        description: |
            The root container for the combined user information and their first AfA PNP record.
        type: object
        required: 
            - access-for-all-pnp-record
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                $ref: "#/definitions/UserAFAPNPRecordDType"
        additionalProperties: false
    SpokenDType:
        description: |
            The container for the preferences that are used to define the ways in which information is 'spoken'.
        type: object
        required: 
            - reading-type
            - link-indication
            - typing-echo
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            reading-type: 
                description: |
                    Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - screen-reader
                   - computer-read-aloud
                default: screen-reader
            restriction-type: 
                description: |
                    Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                type: array
                minItems: 0
                items: 
                    type: string
            speech-rate: 
                description: Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Model Primitive Datatype = Integer.
                type: integer
                format: int32
                default: 180
            pitch: 
                description: Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 0.5
            volume: 
                description: Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 0.5
            link-indication: 
                description: |
                    The nature of handling embedded links. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - speak-link
                   - different-voice
                   - sound-effect
                   - none
            typing-echo: 
                description: |
                    Unit of reading to be spoken. This is an enumerated vocabulary.
                type: string
                enum: 
                   - characters
                   - words
                   - characters-and-words
                   - none
        additionalProperties: false
    TextAppearanceDType:
        description: |
            The container for the set of preferences for the appearance of text on a display.
        type: object
        x-1edtech-privacy:
            - extensions
        x-1edtech-confidentiality: unrestricted
        x-1edtech-confidentiality-normal: 
            - extensions
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            color-theme: 
                description: |
                    The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                type: string
            background-color: 
                description: Background color in an interface that is displaying text. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            font-color: 
                description: Font color in an interface that is displaying text. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            font-size: 
                description: Size of a font. This value is in points. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 12.0
            font-face: 
                $ref: "#/definitions/FontFaceDType"
            line-spacing: 
                description: The line spacing. Model Primitive Datatype = Float.
                type: number
                format: float
            line-height: 
                description: The line height. Model Primitive Datatype = Float.
                type: number
                format: float
            letter-spacing: 
                description: The spacing between letters. This value is in points.  Model Primitive Datatype = Float.
                type: number
                format: float
            uniform-font-sizing: 
                description: Defines if uniform font sizing is to be used. If present then uniform spacing is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            word-spacing: 
                description: The spacing between words. This value is in points.  Model Primitive Datatype = Float.
                type: number
                format: float
            word-wrapping: 
                description: Defines if word wrapping is to be used. If present then word wrapping is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: true
    UserAFAPNPRecordDType:
        description: |
            This is the container for each of the combined user information and AfA PNP record.
        type: object
        required: 
            - personSourcedId
            - activitySourcedId
            - user
            - access-for-all-pnp
        x-1edtech-privacy:
            - personSourcedId
            - user
            - access-for-all-pnp
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - personSourcedId
            - user
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp
        properties: 
            personSourcedId: 
                $ref: "#/definitions/PersonSourcedIdDType"
            activitySourcedId: 
                description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                type: string
            user: 
                $ref: "#/definitions/UserRecordDType"
            access-for-all-pnp: 
                $ref: "#/definitions/AccessForAllPNPDType"
        additionalProperties: false
    UserIdDType:
        description: |
            This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
        type: object
        required: 
            - type
            - identifier
        x-1edtech-privacy:
            - type
            - identifier
        x-1edtech-confidentiality: normal
        x-1edtech-confidentiality-normal: 
            - type
            - identifier
        properties: 
            type: 
                description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                type: string
            identifier: 
                description: The identifier, of the defined type, for the user. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    UserRecordDType:
        description: |
            The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.
        type: object
        required: 
            - userIds
        x-1edtech-privacy:
            - userIds
            - extensions
        x-1edtech-confidentiality: normal
        x-1edtech-confidentiality-normal: 
            - userIds
            - extensions
        properties: 
            userIds: 
                description: |
                    This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/UserIdDType"
        additionalProperties: true
    ZoomAmountDType:
        description: |
            A data-type for amount of zoom i.e. magnification.
        type: object
        required: 
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            zoom-amount: 
                description: The value for the zoom amount as a float number. Model Primitive Datatype = Float.
                type: number
                format: float
            value: 
                description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                type: string
                enum: 
                   - active
        additionalProperties: false
    imsx_CodeMinorDType:
        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
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - forbidden
                   - internal_server_error
                   - invalid_filter_field
                   - invalid_selection_field
                   - invalid_sort_field
                   - invaliddata
                   - server_busy
                   - unauthorisedrequest
                   - unknownobject
                   - unsupported
                   - user_already_exists
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMajor: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_codeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

B2.2 OpenAPI 3.0 YAML Listing

The OpenAPI 3 (YAML) listing (based upon [OAS, 17]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/afapnp/schema/openapi/imsafapnpv1p0_openapi3_v1p0p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           1st May, 2024
# Version:        1.0
# Status:         1EdTech Candidate Final
# Description:    The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
# 
# History:        This is the first release of the Access for All Personal Needs and Preferences (AfAPNP) Service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the 1EdTech Access for All Personal Needs and Preferences (AfAPNP) Service Version 1.0
#                 found at https://www.1edtech.org/afapnp and the original 1EdTech schema binding or code base at
#                 https://www.1edtech.org/afapnp.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on 1EdTech procedures with respect to rights in 1EdTech 
#                 specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) 1EdTech Consortium 1999-2024. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.org/license.html.
# 
#                 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 1EdTech or its successors or assigns.
# 
#                 THIS SPECIFICATION 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st October, 2022
# Autogen Engineer: Colin Smythe (1EdTech)
# Autogen Date:     2024-04-23
# 
# 1EdTech Auto-generation Binding Tool-kit (E-BAT)
# ================================================
# This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT). While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool. Permission is given to make use of this tool. 1EdTech makes no
# claim on the materials created by third party users of this tool. Details on how to use this tool
# are contained in the 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
# https://www.1edtech.org.
# 
# Tool Copyright:  2012-2024  (c) 1EdTech Consortium Inc. All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (YAML) Definition
    description: The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
    termsOfService: https://www.imsglobal.org/license.html
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.1edtech.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/afapnp/v1p0
              default: /ims/afapnp/v1p0

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AfAPNPRecordManagement
      description: |
        This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /afapnprecords:
        get:
            operationId: getAllAfAPNPRecords
            summary: The REST read request message for the getAllAfAPNPRecords() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllAfAPNPRecords
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAfAPNPRecords
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAfAPNPRecords
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllAfAPNPRecords
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordForUserForActivity
            summary: The REST read request message for the getAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAFAPNPRecordDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordForUserForActivity
            summary: The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: createAfAPNPRecordForUserForActivity
            summary: The REST create request message for the createAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            requestBody:
                description: |
                    The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleUserAFAPNPRecordDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        post:
            operationId: addAfAPNPRecordForUserForActivity
            summary: The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            requestBody:
                description: |
                    Tthe AfA PNP record that is to be added to the set of records for the specified user.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleAFAPNPRecordDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /users/{userSourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordSetForUser
            summary: The REST read request message for the getAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAfAPNPRecordSetForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAfAPNPRecordSetForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAfAPNPRecordSetForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAfAPNPRecordSetForUser
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordSetForUser
            summary: The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"


#####################################################################################
#                               Components                                          #
#####################################################################################
components:
    securitySchemes:
        OAuth2CC:
            type: oauth2
            description: |
                OAuth 2 Client Credentials (as per the requirements in the 1EdTech Security Framework) is to be used.
            flows:
                clientCredentials:
                    tokenUrl: https://www.1edtech.org/token
                    scopes: 
                        https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly: To enable access to ALL of the READ endpoints for the AfA PNP service.
                        https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly: To enable access to ALL of the PUT/POST/DELETE endpoints for the AfA PNP service.
                        https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly: The scope that MUST be used for LTI enabled access to the AfA PNP service.
    schemas: 
        AccessForAllPNPDType:
            description: |
                A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.
            type: object
            x-1edtech-privacy:
                - access-mode-required
                - adaptation-type-required
                - at-interoperable
                - educational-complexity-of-adaptation
                - hazard-avoidance
                - input-requirements
                - language-of-adaptation
                - language-of-interface
                - adaptation-detail-required
                - adaptation-media-required
                - educational-level-of-adaptation
                - linguistic-guidance
                - keyword-emphasis
                - keyword-translation
                - simplified-language-portions
                - simplified-graphics
                - item-translation
                - sign-language
                - encouragement
                - additional-testing-time
                - line-reader
                - magnification
                - spoken
                - tactile
                - braille
                - answer-masking
                - keyboard-directions
                - additional-directions
                - long-description
                - captions
                - environment
                - transcript
                - alternative-text
                - audio-description
                - high-contrast
                - layout-single-column
                - text-appearance
                - calculator-on-screen
                - dictionary-on-screen
                - glossary-on-screen
                - thesaurus-on-screen
                - homophone-checker-on-screen
                - note-taking-on-screen
                - visual-organizer-on-screen
                - outliner-on-screen
                - peer-interaction-on-screen
                - spell-checker-on-screen
                - activate-at-initialization-set
                - activate-as-option-set
                - prohibit-set
                - extensions
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-normal: 
                - text-appearance
                - activate-at-initialization-set
                - activate-as-option-set
                - prohibit-set
                - extensions
            x-1edtech-confidentiality-veryrestricted: 
                - access-mode-required
                - adaptation-type-required
                - at-interoperable
                - educational-complexity-of-adaptation
                - hazard-avoidance
                - input-requirements
                - language-of-adaptation
                - language-of-interface
                - adaptation-detail-required
                - adaptation-media-required
                - educational-level-of-adaptation
                - linguistic-guidance
                - keyword-emphasis
                - keyword-translation
                - simplified-language-portions
                - simplified-graphics
                - item-translation
                - sign-language
                - encouragement
                - additional-testing-time
                - line-reader
                - magnification
                - spoken
                - tactile
                - braille
                - answer-masking
                - keyboard-directions
                - additional-directions
                - long-description
                - captions
                - environment
                - transcript
                - alternative-text
                - audio-description
                - high-contrast
                - layout-single-column
                - text-appearance
                - calculator-on-screen
                - dictionary-on-screen
                - glossary-on-screen
                - thesaurus-on-screen
                - homophone-checker-on-screen
                - note-taking-on-screen
                - visual-organizer-on-screen
                - outliner-on-screen
                - peer-interaction-on-screen
                - spell-checker-on-screen
                - activate-at-initialization-set
                - activate-as-option-set
                - prohibit-set
            properties: 
                access-mode-required: 
                    description: |
                        Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. 
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AccessModeRequiredDType"
                adaptation-type-required: 
                    description: |
                        Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AdaptationTypeRequiredDType"
                at-interoperable: 
                    description: A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible. Model Primitive Datatype = Boolean.
                    type: boolean
                educational-complexity-of-adaptation: 
                    description: |
                        A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                    anyOf: 
                        - enum: 
                            - enriched
                            - simplified
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                hazard-avoidance: 
                    description: |
                        A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                    type: array
                    minItems: 0
                    items: 
                        anyOf: 
                        - enum: 
                            - flashing
                            - sound
                            - olfactory-hazard
                            - motion-simulation
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                input-requirements: 
                    description: |
                        Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                    anyOf: 
                        - enum: 
                            - full-keyboard-control
                            - full-mouse-control
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                language-of-adaptation: 
                    description: |
                        A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LanguageModeDType"
                language-of-interface: 
                    description: |
                        A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LanguageModeDType"
                adaptation-detail-required: 
                    description: |
                        This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AdaptationDetailRequiredDType"
                adaptation-media-required: 
                    description: |
                        This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AdaptationMediaRequiredDType"
                educational-level-of-adaptation: 
                    description: A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                linguistic-guidance: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                keyword-emphasis: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                keyword-translation: 
                    $ref: "#/components/schemas/LanguageModeDType"
                simplified-language-portions: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                simplified-graphics: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                item-translation: 
                    $ref: "#/components/schemas/LanguageModeDType"
                sign-language: 
                    $ref: "#/components/schemas/LanguageModeDType"
                encouragement: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                additional-testing-time: 
                    $ref: "#/components/schemas/AdditionalTestingTimeDType"
                line-reader: 
                    $ref: "#/components/schemas/LineReaderDType"
                magnification: 
                    $ref: "#/components/schemas/MagnificationDType"
                spoken: 
                    $ref: "#/components/schemas/SpokenDType"
                tactile: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                braille: 
                    $ref: "#/components/schemas/BrailleDType"
                answer-masking: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                keyboard-directions: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                additional-directions: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                long-description: 
                    $ref: "#/components/schemas/LongDescriptionDType"
                captions: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                environment: 
                    $ref: "#/components/schemas/EnvironmentDType"
                transcript: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                alternative-text: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                audio-description: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                high-contrast: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                layout-single-column: 
                    $ref: "#/components/schemas/ReplacesAccessModeDType"
                text-appearance: 
                    $ref: "#/components/schemas/TextAppearanceDType"
                calculator-on-screen: 
                    $ref: "#/components/schemas/CalculatorDType"
                dictionary-on-screen: 
                    description: The presence of this attribute makes available, on screen, the dictionary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                glossary-on-screen: 
                    description: The presence of this attribute makes available, on screen, the glossary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                thesaurus-on-screen: 
                    description: The presence of this attribute makes available, on screen, the thesaurus tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                homophone-checker-on-screen: 
                    description: The presence of this attribute makes available, on screen, the homophone checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                note-taking-on-screen: 
                    description: The presence of this attribute makes available, on screen, the note taking tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                visual-organizer-on-screen: 
                    description: The presence of this attribute makes available, on screen, the visual organizer tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                outliner-on-screen: 
                    description: The presence of this attribute makes available, on screen, the outliner tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                peer-interaction-on-screen: 
                    description: The presence of this attribute makes available, on screen, the peer interaction tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                spell-checker-on-screen: 
                    description: The presence of this attribute makes available, on screen, the spell checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                activate-at-initialization-set: 
                    $ref: "#/components/schemas/FeatureSetDType"
                activate-as-option-set: 
                    $ref: "#/components/schemas/FeatureSetDType"
                prohibit-set: 
                    $ref: "#/components/schemas/FeatureSetDType"
            additionalProperties: true
        AccessForAllPNPRecordDType:
            description: |
                This is the container for each of the AfA PNP Records.
            type: object
            required: 
                - personSourcedId
                - activitySourcedId
                - access-for-all-pnp
            x-1edtech-privacy:
                - personSourcedId
                - activitySourcedId
                - access-for-all-pnp
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-normal: 
                - personSourcedId
                - activitySourcedId
            x-1edtech-confidentiality-veryrestricted: 
                - access-for-all-pnp
            properties: 
                personSourcedId: 
                    $ref: "#/components/schemas/PersonSourcedIdDType"
                activitySourcedId: 
                    description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                    type: string
                access-for-all-pnp: 
                    $ref: "#/components/schemas/AccessForAllPNPDType"
            additionalProperties: false
        AccessForAllPNPRecordSetDType:
            description: |
                This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.
            type: object
            x-1edtech-privacy:
                - access-for-all-pnp-record
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-veryrestricted: 
                - access-for-all-pnp-record
            properties: 
                access-for-all-pnp-record: 
                    description: |
                        This is used to contain the description of each of the individual AfA PNP Records.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AccessForAllPNPRecordDType"
            additionalProperties: false
        AccessModeRequiredDType:
            description: |
                The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.
            type: object
            required: 
                - existing-access-mode
                - adaptation-request
            x-1edtech-confidentiality: unrestricted
            properties: 
                existing-access-mode: 
                    description: |
                        A value, from the AccessMode vocabulary, for the existing access mode.
                    anyOf: 
                        - enum: 
                            - auditory
                            - color
                            - item-size
                            - olfactory
                            - orientation
                            - position
                            - tactile
                            - text-on-image
                            - textual
                            - visual
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                adaptation-request: 
                    description: |
                        A value, from the AccessMode vocabulary, for the new adaptation access mode.
                    anyOf: 
                        - enum: 
                            - auditory
                            - color
                            - item-size
                            - olfactory
                            - orientation
                            - position
                            - tactile
                            - text-on-image
                            - textual
                            - visual
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
            additionalProperties: false
        AdaptationDetailRequiredDType:
            description: |
                The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. 
            type: object
            required: 
                - existing-access-mode
                - adaptation-request
            x-1edtech-confidentiality: unrestricted
            properties: 
                existing-access-mode: 
                    description: |
                        A value, from the AdaptationDetail vocabulary, for the existing access mode.
                    anyOf: 
                        - enum: 
                            - auditory
                            - color
                            - item-size
                            - olfactory
                            - orientation
                            - position
                            - tactile
                            - text-on-image
                            - textual
                            - visual
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                adaptation-request: 
                    description: |
                        A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                    anyOf: 
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                        - enum: 
                            - enhanced
                            - verbatim
                            - real-time
                            - symbolic
                            - recorded
                            - synthesized
                          type: string
            additionalProperties: false
        AdaptationMediaRequiredDType:
            description: |
                The container for the requirement for a particular type of media.
            type: object
            required: 
                - existing-access-mode
                - adaptation-request
            x-1edtech-confidentiality: unrestricted
            properties: 
                existing-access-mode: 
                    description: |
                        A value, from the AdaptationMedia vocabulary, for the existing access mode.
                    anyOf: 
                        - enum: 
                            - auditory
                            - color
                            - item-size
                            - olfactory
                            - orientation
                            - position
                            - tactile
                            - text-on-image
                            - textual
                            - visual
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                adaptation-request: 
                    description: |
                        A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                    anyOf: 
                        - enum: 
                            - Daisy
                            - braille
                            - NIMAS
                            - MathML
                            - ChemML
                            - LaTeX
                            - OEBPS
                            - PDF
                            - LIT
                            - Nemeth
                            - EPUB3
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
            additionalProperties: false
        AdaptationTypeRequiredDType:
            description: |
                Nature or genre of the adaptation required as a replacement for a specific access mode.
            type: object
            required: 
                - existing-access-mode
                - adaptation-request
            x-1edtech-confidentiality: unrestricted
            properties: 
                existing-access-mode: 
                    description: |
                        A value, from the AdaptationType vocabulary, for the existing access mode.
                    anyOf: 
                        - enum: 
                            - auditory
                            - color
                            - item-size
                            - olfactory
                            - orientation
                            - position
                            - tactile
                            - text-on-image
                            - textual
                            - visual
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                adaptation-request: 
                    description: |
                        A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                    anyOf: 
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                        - enum: 
                            - alternative-text
                            - audio-description
                            - captions
                            - e-book
                            - haptic
                            - high-contrast
                            - long-description
                            - sign-language
                            - transcript
                          type: string
            additionalProperties: false
        AdditionalTestingTimeDType:
            description: |
                The container for the set of additional testing time preferences. Only one of the available options can be selected.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                time-multiplier: 
                    description: Providing the additional testing time as a multiplier of the set time. Model Primitive Datatype = Float.
                    type: number
                    format: float
                fixed-minutes: 
                    description: Providing the additional testing time as an additional number of minutes. Model Primitive Datatype = Integer.
                    type: integer
                    format: int32
                unlimited: 
                    description: Providing the additional testing time as an unlimited time. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        BrailleDType:
            description: |
                The container for the set of preferences for Braille devices.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                language: 
                    description: The native language, defined as per [RFC 3066], to which the Braille conversion will be applied. Model Primitive Datatype = Language.
                    type: string
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                delivery-mode: 
                    description: |
                        The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                    type: string
                    enum: 
                       - refreshable
                       - embossed
                    default: refreshable
                grade: 
                    description: |
                        The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                    type: string
                    enum: 
                       - 1
                       - 2
                       - 3
                    default: 2
                braille-type: 
                    description: |
                        The type of Braille to be used.
                    anyOf: 
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                        - enum: 
                            - ebae
                            - ueb
                          type: string
                math-type: 
                    description: |
                        The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                    anyOf: 
                        - enum: 
                            - nemeth
                            - ueb
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
            additionalProperties: false
        CalculatorDType:
            description: |
                The data-type for the type of calculator tool.
            type: object
            required: 
                - value
            x-1edtech-confidentiality: unrestricted
            properties: 
                calculator-type: 
                    description: |
                        The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                    anyOf: 
                        - enum: 
                            - basic
                            - standard
                            - scientific
                            - graphing
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                value: 
                    description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        EnvironmentDType:
            description: |
                The container for the set of preferences for the environment within which the learning exerience is to take place.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                description: 
                    description: A human-readable description of the accessibility support environment. Model Primitive Datatype = NormalizedString.
                    type: string
                medical: 
                    description: A human-readable description of the available medical support. Model Primitive Datatype = NormalizedString.
                    type: string
                software: 
                    description: A human-readable description of the available accessibility software. Model Primitive Datatype = NormalizedString.
                    type: string
                hardware: 
                    description: A human-readable description of the available accessibility hardware. Model Primitive Datatype = NormalizedString.
                    type: string
                breaks: 
                    description: A human-readable description of the available breaks i.e. moments away for the activity itself. Model Primitive Datatype = Boolean.
                    type: boolean
            additionalProperties: false
        FeatureSetDType:
            description: |
                This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                linguistic-guidance: 
                    description: Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                keyword-emphasis: 
                    description: Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                keyword-translation: 
                    description: Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                simplified-language-portions: 
                    description: Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                simplified-graphics: 
                    description: Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                item-translation: 
                    description: Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                sign-language: 
                    description: Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                encouragement: 
                    description: Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                additional-testing-time: 
                    description: Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                line-reader: 
                    description: Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                magnification: 
                    description: Used to indicate that the corresponding 'magnification' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                spoken: 
                    description: Used to indicate that the corresponding 'spoken' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                tactile: 
                    description: Used to indicate that the corresponding 'tactile' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                braille: 
                    description: Used to indicate that the corresponding 'braille' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                answer-masking: 
                    description: Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                keyboard-directions: 
                    description: Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                additional-directions: 
                    description: Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                long-description: 
                    description: Used to indicate that the corresponding 'long-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                captions: 
                    description: Used to indicate that the corresponding 'captions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                transcript: 
                    description: Used to indicate that the corresponding 'transcript' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                alternative-text: 
                    description: Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                audio-description: 
                    description: Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                high-contrast: 
                    description: Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                input-requirements: 
                    description: Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                language-of-interface: 
                    description: Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                layout-single-column: 
                    description: Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                text-appearance: 
                    description: Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                calculator-on-screen: 
                    description: Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                dictionary-on-screen: 
                    description: Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                glossary-on-screen: 
                    description: Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                thesaurus-on-screen: 
                    description: Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                homophone-checker-on-screen: 
                    description: Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                note-taking-on-screen: 
                    description: Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                visual-organizer-on-screen: 
                    description: Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                outliner-on-screen: 
                    description: Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                peer-interaction-on-screen: 
                    description: Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                spell-checker-on-screen: 
                    description: Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: true
        FontFaceDType:
            description: |
                The container for information about the font face to be used.
            type: object
            required: 
                - generic-font-face
            x-1edtech-confidentiality: unrestricted
            properties: 
                font-name: 
                    description: The name of the font to be used for text display. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 0
                    items: 
                        type: string
                generic-font-face: 
                    description: |
                        The generic font face to be use for text. This is based upon an enumerated vocabulary.
                    type: string
                    enum: 
                       - serif
                       - sans serif
                       - monospaced
                       - cursive
                       - fantasy
            additionalProperties: false
        LanguageModeDType:
            description: |
                The container for the set of preferences related to the language mode.
            type: object
            required: 
                - language
            x-1edtech-confidentiality: unrestricted
            properties: 
                language: 
                    description: Identification of the language. The permitted value is based upon [RFC 3066]. Model Primitive Datatype = Language.
                    type: string
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        LineReaderDType:
            description: |
                The container for the preference settings for line readers.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                highlight-color: 
                    description: The highlight color to be used by the display when identifying the position of the line reader. Model Primitive Datatype = String.
                    type: string
                    pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        LongDescriptionDType:
            description: |
                The container for the preferences for the provision of long descriptions.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                hide-visually: 
                    description: Defines whether or not the long description is hidden from view as a default setting. Model Primitive Datatype = Boolean.
                    type: boolean
                    default: true
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        MagnificationDType:
            description: |
                The container for the details about the magnification preferences.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                all-content: 
                    $ref: "#/components/schemas/ZoomAmountDType"
                select-magnification: 
                    $ref: "#/components/schemas/SelectMagnificationDType"
            additionalProperties: false
        PersonSourcedIdDType:
            description: |
                The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.
            type: object
            required: 
                - source-system
                - value
            x-1edtech-confidentiality: unrestricted
            properties: 
                source-system: 
                    description: The source system that was responsible for the allocation of the 'sourcedId' for the Person. Model Primitive Datatype = NormalizedString.
                    type: string
                value: 
                    description: Model Derived-Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        ReplacesAccessModeDType:
            description: |
                This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        SelectMagnificationDType:
            description: |
                This is used to contain the zoom magnification factors for the display of text and non-text.
            type: object
            x-1edtech-confidentiality: unrestricted
            properties: 
                text: 
                    $ref: "#/components/schemas/ZoomAmountDType"
                non-text: 
                    $ref: "#/components/schemas/ZoomAmountDType"
            additionalProperties: false
        SingleAFAPNPRecordDType:
            description: |
                The root container for a single AfA PNP record.
            type: object
            required: 
                - access-for-all-pnp-record
            x-1edtech-privacy:
                - access-for-all-pnp-record
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-veryrestricted: 
                - access-for-all-pnp-record
            properties: 
                access-for-all-pnp-record: 
                    $ref: "#/components/schemas/AccessForAllPNPRecordDType"
            additionalProperties: false
        SingleUserAFAPNPRecordDType:
            description: |
                The root container for the combined user information and their first AfA PNP record.
            type: object
            required: 
                - access-for-all-pnp-record
            x-1edtech-privacy:
                - access-for-all-pnp-record
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-veryrestricted: 
                - access-for-all-pnp-record
            properties: 
                access-for-all-pnp-record: 
                    $ref: "#/components/schemas/UserAFAPNPRecordDType"
            additionalProperties: false
        SpokenDType:
            description: |
                The container for the preferences that are used to define the ways in which information is 'spoken'.
            type: object
            required: 
                - reading-type
                - link-indication
                - typing-echo
            x-1edtech-confidentiality: unrestricted
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                reading-type: 
                    description: |
                        Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                    type: string
                    enum: 
                       - screen-reader
                       - computer-read-aloud
                    default: screen-reader
                restriction-type: 
                    description: |
                        Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                    type: array
                    minItems: 0
                    items: 
                        anyOf: 
                        - enum: 
                            - unrestricted
                            - word-by-word
                            - directions-only
                            - skip-math-equations
                            - skip-chemistry-equations
                          type: string
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                speech-rate: 
                    description: Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Model Primitive Datatype = Integer.
                    type: integer
                    format: int32
                    default: 180
                pitch: 
                    description: Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                    type: number
                    format: float
                    default: 0.5
                volume: 
                    description: Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                    type: number
                    format: float
                    default: 0.5
                link-indication: 
                    description: |
                        The nature of handling embedded links. This is based upon an enumerated vocabulary.
                    type: string
                    enum: 
                       - speak-link
                       - different-voice
                       - sound-effect
                       - none
                typing-echo: 
                    description: |
                        Unit of reading to be spoken. This is an enumerated vocabulary.
                    type: string
                    enum: 
                       - characters
                       - words
                       - characters-and-words
                       - none
            additionalProperties: false
        TextAppearanceDType:
            description: |
                The container for the set of preferences for the appearance of text on a display.
            type: object
            x-1edtech-privacy:
                - extensions
            x-1edtech-confidentiality: unrestricted
            x-1edtech-confidentiality-normal: 
                - extensions
            properties: 
                replace-access-mode-auditory: 
                    description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-color: 
                    description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-item-size: 
                    description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-olfactory: 
                    description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-orientation: 
                    description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-position: 
                    description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-tactile: 
                    description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-text-on-image: 
                    description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-textual: 
                    description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                replace-access-mode-visual: 
                    description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                color-theme: 
                    description: |
                        The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                    anyOf: 
                        - description: This is the mechanism to provide extensible enumerated vocabularies.  The extensions must be strings that start with the sub-string of 'ext:'. Model Primitive Datatype = String.
                          type: string
                          pattern: "(ext:)[a-z|A-Z|.|_]+"
                        - enum: 
                            - default
                            - default-reverse
                            - high-contrast
                            - high-contrast-reverse
                            - yellow-blue
                            - blue-yellow
                            - black-rose
                            - rose-black
                            - black-cyan
                            - cyan-black
                            - black-cream
                            - cream-black
                            - medgray-darkgray
                            - darkgray-medgray
                          type: string
                background-color: 
                    description: Background color in an interface that is displaying text. Model Primitive Datatype = String.
                    type: string
                    pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                font-color: 
                    description: Font color in an interface that is displaying text. Model Primitive Datatype = String.
                    type: string
                    pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                font-size: 
                    description: Size of a font. This value is in points. Model Primitive Datatype = Float.
                    type: number
                    format: float
                    default: 12.0
                font-face: 
                    $ref: "#/components/schemas/FontFaceDType"
                line-spacing: 
                    description: The line spacing. Model Primitive Datatype = Float.
                    type: number
                    format: float
                line-height: 
                    description: The line height. Model Primitive Datatype = Float.
                    type: number
                    format: float
                letter-spacing: 
                    description: The spacing between letters. This value is in points.  Model Primitive Datatype = Float.
                    type: number
                    format: float
                uniform-font-sizing: 
                    description: Defines if uniform font sizing is to be used. If present then uniform spacing is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
                word-spacing: 
                    description: The spacing between words. This value is in points.  Model Primitive Datatype = Float.
                    type: number
                    format: float
                word-wrapping: 
                    description: Defines if word wrapping is to be used. If present then word wrapping is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                    type: string
                    enum: 
                       - active
            additionalProperties: true
        UserAFAPNPRecordDType:
            description: |
                This is the container for each of the combined user information and AfA PNP record.
            type: object
            required: 
                - personSourcedId
                - activitySourcedId
                - user
                - access-for-all-pnp
            x-1edtech-privacy:
                - personSourcedId
                - user
                - access-for-all-pnp
            x-1edtech-confidentiality: veryrestricted
            x-1edtech-confidentiality-normal: 
                - personSourcedId
                - user
            x-1edtech-confidentiality-veryrestricted: 
                - access-for-all-pnp
            properties: 
                personSourcedId: 
                    $ref: "#/components/schemas/PersonSourcedIdDType"
                activitySourcedId: 
                    description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                    type: string
                user: 
                    $ref: "#/components/schemas/UserRecordDType"
                access-for-all-pnp: 
                    $ref: "#/components/schemas/AccessForAllPNPDType"
            additionalProperties: false
        UserIdDType:
            description: |
                This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
            type: object
            required: 
                - type
                - identifier
            x-1edtech-privacy:
                - type
                - identifier
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - type
                - identifier
            properties: 
                type: 
                    description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                    type: string
                identifier: 
                    description: The identifier, of the defined type, for the user. Model Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        UserRecordDType:
            description: |
                The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.
            type: object
            required: 
                - userIds
            x-1edtech-privacy:
                - userIds
                - extensions
            x-1edtech-confidentiality: normal
            x-1edtech-confidentiality-normal: 
                - userIds
                - extensions
            properties: 
                userIds: 
                    description: |
                        This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/UserIdDType"
            additionalProperties: true
        ZoomAmountDType:
            description: |
                A data-type for amount of zoom i.e. magnification.
            type: object
            required: 
                - value
            x-1edtech-confidentiality: unrestricted
            properties: 
                zoom-amount: 
                    description: The value for the zoom amount as a float number. Model Primitive Datatype = Float.
                    type: number
                    format: float
                value: 
                    description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                    type: string
                    enum: 
                       - active
            additionalProperties: false
        imsx_CodeMinorDType:
            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
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMinorField: 
                    description: |
                        Each reported code minor status code.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/imsx_CodeMinorFieldDType"
            additionalProperties: false
        imsx_CodeMinorFieldDType:
            description: |
                This is the container for a single code minor status code.
            type: object
            required: 
                - imsx_codeMinorFieldName
                - imsx_codeMinorFieldValue
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMinorFieldName: 
                    description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                    type: string
                    default: TargetEndSystem
                imsx_codeMinorFieldValue: 
                    description: |
                        The code minor status code (this is a value from the corresponding enumerated vocabulary).
                    type: string
                    enum: 
                       - fullsuccess
                       - forbidden
                       - internal_server_error
                       - invalid_filter_field
                       - invalid_selection_field
                       - invalid_sort_field
                       - invaliddata
                       - server_busy
                       - unauthorisedrequest
                       - unknownobject
                       - unsupported
                       - user_already_exists
            additionalProperties: false
        imsx_StatusInfoDType:
            description: |
                This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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
            x-1edtech-confidentiality: unrestricted
            properties: 
                imsx_codeMajor: 
                    description: |
                        The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                    type: string
                    enum: 
                       - success
                       - processing
                       - failure
                       - unsupported
                imsx_severity: 
                    description: |
                        The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                    type: string
                    enum: 
                       - status
                       - warning
                       - error
                imsx_description: 
                    description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                    type: string
                imsx_codeMinor: 
                    $ref: "#/components/schemas/imsx_CodeMinorDType"
            additionalProperties: false
        

B2.3 OpenAPI 3.1 YAML Listing

The OpenAPI 3.1 (YAML) listing (based upon [OAS, 21]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/afapnp/schema/openapi/imsafapnpv1p0_openapi3p1_v1p0p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (1EdTech)
# Date:           1st May, 2024
# Version:        1.0
# Status:         1EdTech Candidate Final
# Description:    The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
# 
# History:        This is the first release of the Access for All Personal Needs and Preferences (AfAPNP) Service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the 1EdTech Access for All Personal Needs and Preferences (AfAPNP) Service Version 1.0
#                 found at https://www.1edtech.org/afapnp and the original 1EdTech schema binding or code base at
#                 https://www.1edtech.org/afapnp.
# 
#                 Recipients of this document are requested to submit, with their comments, notification of any relevant 
#                 patent claims or other intellectual property rights of which they may be aware that might be infringed by
#                 any implementation of the specification set forth in this document, and to provide supporting documentation.
# 
#                 1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might
#                 be claimed to pertain to the implementation or use of the technology described in this document or the extent 
#                 to which any license under such rights might or might not be available; neither does it represent that it has 
#                 made any effort to identify any such rights. Information on 1EdTech procedures with respect to rights in 1EdTech 
#                 specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) 1EdTech Consortium 1999-2024. All Rights Reserved.
# 
#                 Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: http://www.1edtech.org/license.html.
# 
#                 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 1EdTech or its successors or assigns.
# 
#                 THIS SPECIFICATION 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st October, 2022
# Autogen Engineer: Colin Smythe (1EdTech)
# Autogen Date:     2024-04-23
# 
# 1EdTech Auto-generation Binding Tool-kit (E-BAT)
# ================================================
# This file was auto-generated using the 1EdTech Binding Auto-generation Tool-kit (E-BAT). While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool. Permission is given to make use of this tool. 1EdTech makes no
# claim on the materials created by third party users of this tool. Details on how to use this tool
# are contained in the 1EdTech "E-BAT" documentation available at the 1EdTech web-site:
# https://www.1edtech.org.
# 
# Tool Copyright:  2012-2024  (c) 1EdTech Consortium Inc. All Rights Reserved.
# 
# #####################################################################################

openapi: '3.1.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: Access for All Personal Needs and Preferences (AfAPNP) Service OpenAPI (YAML) Definition
    description: The Access for All Personal Needs and Preferences (AfAPNP) Service defines the service to enable the exchange of the personal needs and preferences configuration data for a user.
    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: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.1edtech.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/afapnp/v1p0
              default: /ims/afapnp/v1p0

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AfAPNPRecordManagement
      description: |
        This interface enables the management of the access to the set of Access for All Personal Needs and Preferences (AFA PNP) records. The set of operations support the creation, deletion and reading of AfA PNP records.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /afapnprecords:
        get:
            operationId: getAllAfAPNPRecords
            summary: The REST read request message for the getAllAfAPNPRecords() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read all of the AfA PNP records in the context of the system implementation i.e. for a schools, district, etc.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /users/{userSourcedId}/activities/{activitySourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordForUserForActivity
            summary: The REST read request message for the getAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the AfA PNP record the identified user for the specified learning activity. If either the user or activity cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.lti.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/SingleAFAPNPRecordDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordForUserForActivity
            summary: The REST delete request message for the deleteAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete the identified AfA PNP record associated with the identified user. If the specified user and/or AFA PNP record cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AfA PNP record is deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: createAfAPNPRecordForUserForActivity
            summary: The REST create request message for the createAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To create an AfA PNP record for the defined user. If the user already exists then the request is rejected with a status code of 'user_already_exists'. This request results in a new user record being created to which AfA PNP records for other activities MAY be added.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: afapnpUserRecord
                  in: body
                  description: |
                      The combination of the user information for the creation of the user record and the first AfA PNP record that is to be associated with that user information.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleUserAFAPNPRecordDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        post:
            operationId: addAfAPNPRecordForUserForActivity
            summary: The REST createbp request message for the addAfAPNPRecordForUserForActivity() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To add an AfA PNP record for the specified activity for a user who already has other AfA PNP record(s). If the specified activity is already defined, that record is replaced with the AfA PNP record supplied.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: activitySourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this learning activity This is the interoperability identifier for the activity.
                  required: true
                  type: string
                - name: afapnpRecord
                  in: body
                  description: |
                      Tthe AfA PNP record that is to be added to the set of records for the specified user.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAFAPNPRecordDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "201" : 
                    description: |
                        The object has been successfully created. This would be accompanied by the 'codeMajor/severity' values of 'success/status'. The 'codeMinority' code will either be 'replacesuccess' or 'fullsuccess'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /users/{userSourcedId}/afapnprecords:
        get:
            operationId: getAfAPNPRecordSetForUser
            summary: The REST read request message for the getAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To read the set of AfA PNP records for the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.readonly
            x-1edtech-confidentiality: veryrestricted
            responses: 
                "200" : 
                    description: |
                        The requested read has been fully serviced and all of the required data returned.
                    schema: 
                        $ref: "#/definitions/AccessForAllPNPRecordSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "400" : 
                    description: |
                        Either an invalid selection field or invalid filter field was supplied and data filtering on the specified criteria was not possible i.e. 'invalid_selection_field' or 'invalid_filter_field' respectively. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be obtained or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAfAPNPRecordSetForUser
            summary: The REST delete request message for the deleteAfAPNPRecordSetForUser() API call.
            tags: 
                - AfAPNPRecordManagement
            description: |
                To delete all of the AfA PNP records associated with the identified user. If the specified user cannot be identified within the service provider then a status code of 'unknownobject' must be reported. Note that the user record is NOT deleted i.e. ONLY the AFA PNP records are deleted.
            parameters: 
                - name: userSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this user. This is the interoperability identifier for the user.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/afapnp/v1p0/scope/afapnprecord.writeonly
            x-1edtech-confidentiality: undefinedverbtype
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. This would be accompanied by the 'codeMajor/severity' values of 'success/status'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "default" : 
                    description: |
                        This is the default payload when none of the other HTTP codes are to be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        The supplied identifier is unknown in the Service Provider and so the object could not be deleted or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AccessForAllPNPDType:
        description: |
            A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.
        type: object
        x-1edtech-privacy:
            - access-mode-required
            - adaptation-type-required
            - at-interoperable
            - educational-complexity-of-adaptation
            - hazard-avoidance
            - input-requirements
            - language-of-adaptation
            - language-of-interface
            - adaptation-detail-required
            - adaptation-media-required
            - educational-level-of-adaptation
            - linguistic-guidance
            - keyword-emphasis
            - keyword-translation
            - simplified-language-portions
            - simplified-graphics
            - item-translation
            - sign-language
            - encouragement
            - additional-testing-time
            - line-reader
            - magnification
            - spoken
            - tactile
            - braille
            - answer-masking
            - keyboard-directions
            - additional-directions
            - long-description
            - captions
            - environment
            - transcript
            - alternative-text
            - audio-description
            - high-contrast
            - layout-single-column
            - text-appearance
            - calculator-on-screen
            - dictionary-on-screen
            - glossary-on-screen
            - thesaurus-on-screen
            - homophone-checker-on-screen
            - note-taking-on-screen
            - visual-organizer-on-screen
            - outliner-on-screen
            - peer-interaction-on-screen
            - spell-checker-on-screen
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
            - extensions
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - text-appearance
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
            - extensions
        x-1edtech-confidentiality-veryrestricted: 
            - access-mode-required
            - adaptation-type-required
            - at-interoperable
            - educational-complexity-of-adaptation
            - hazard-avoidance
            - input-requirements
            - language-of-adaptation
            - language-of-interface
            - adaptation-detail-required
            - adaptation-media-required
            - educational-level-of-adaptation
            - linguistic-guidance
            - keyword-emphasis
            - keyword-translation
            - simplified-language-portions
            - simplified-graphics
            - item-translation
            - sign-language
            - encouragement
            - additional-testing-time
            - line-reader
            - magnification
            - spoken
            - tactile
            - braille
            - answer-masking
            - keyboard-directions
            - additional-directions
            - long-description
            - captions
            - environment
            - transcript
            - alternative-text
            - audio-description
            - high-contrast
            - layout-single-column
            - text-appearance
            - calculator-on-screen
            - dictionary-on-screen
            - glossary-on-screen
            - thesaurus-on-screen
            - homophone-checker-on-screen
            - note-taking-on-screen
            - visual-organizer-on-screen
            - outliner-on-screen
            - peer-interaction-on-screen
            - spell-checker-on-screen
            - activate-at-initialization-set
            - activate-as-option-set
            - prohibit-set
        properties: 
            access-mode-required: 
                description: |
                    Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AccessModeRequiredDType"
            adaptation-type-required: 
                description: |
                    Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationTypeRequiredDType"
            at-interoperable: 
                description: A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible. Model Primitive Datatype = Boolean.
                type: boolean
            educational-complexity-of-adaptation: 
                description: |
                    A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.
                type: string
            hazard-avoidance: 
                description: |
                    A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.
                type: array
                minItems: 0
                items: 
                    type: string
            input-requirements: 
                description: |
                    Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.
                type: string
            language-of-adaptation: 
                description: |
                    A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LanguageModeDType"
            language-of-interface: 
                description: |
                    A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LanguageModeDType"
            adaptation-detail-required: 
                description: |
                    This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationDetailRequiredDType"
            adaptation-media-required: 
                description: |
                    This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AdaptationMediaRequiredDType"
            educational-level-of-adaptation: 
                description: A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            linguistic-guidance: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyword-emphasis: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyword-translation: 
                $ref: "#/definitions/LanguageModeDType"
            simplified-language-portions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            simplified-graphics: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            item-translation: 
                $ref: "#/definitions/LanguageModeDType"
            sign-language: 
                $ref: "#/definitions/LanguageModeDType"
            encouragement: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            additional-testing-time: 
                $ref: "#/definitions/AdditionalTestingTimeDType"
            line-reader: 
                $ref: "#/definitions/LineReaderDType"
            magnification: 
                $ref: "#/definitions/MagnificationDType"
            spoken: 
                $ref: "#/definitions/SpokenDType"
            tactile: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            braille: 
                $ref: "#/definitions/BrailleDType"
            answer-masking: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            keyboard-directions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            additional-directions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            long-description: 
                $ref: "#/definitions/LongDescriptionDType"
            captions: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            environment: 
                $ref: "#/definitions/EnvironmentDType"
            transcript: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            alternative-text: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            audio-description: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            high-contrast: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            layout-single-column: 
                $ref: "#/definitions/ReplacesAccessModeDType"
            text-appearance: 
                $ref: "#/definitions/TextAppearanceDType"
            calculator-on-screen: 
                $ref: "#/definitions/CalculatorDType"
            dictionary-on-screen: 
                description: The presence of this attribute makes available, on screen, the dictionary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            glossary-on-screen: 
                description: The presence of this attribute makes available, on screen, the glossary tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            thesaurus-on-screen: 
                description: The presence of this attribute makes available, on screen, the thesaurus tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            homophone-checker-on-screen: 
                description: The presence of this attribute makes available, on screen, the homophone checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            note-taking-on-screen: 
                description: The presence of this attribute makes available, on screen, the note taking tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            visual-organizer-on-screen: 
                description: The presence of this attribute makes available, on screen, the visual organizer tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            outliner-on-screen: 
                description: The presence of this attribute makes available, on screen, the outliner tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            peer-interaction-on-screen: 
                description: The presence of this attribute makes available, on screen, the peer interaction tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spell-checker-on-screen: 
                description: The presence of this attribute makes available, on screen, the spell checker tool. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            activate-at-initialization-set: 
                $ref: "#/definitions/FeatureSetDType"
            activate-as-option-set: 
                $ref: "#/definitions/FeatureSetDType"
            prohibit-set: 
                $ref: "#/definitions/FeatureSetDType"
        additionalProperties: true
    AccessForAllPNPRecordDType:
        description: |
            This is the container for each of the AfA PNP Records.
        type: object
        required: 
            - personSourcedId
            - activitySourcedId
            - access-for-all-pnp
        x-1edtech-privacy:
            - personSourcedId
            - activitySourcedId
            - access-for-all-pnp
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - personSourcedId
            - activitySourcedId
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp
        properties: 
            personSourcedId: 
                $ref: "#/definitions/PersonSourcedIdDType"
            activitySourcedId: 
                description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                type: string
            access-for-all-pnp: 
                $ref: "#/definitions/AccessForAllPNPDType"
        additionalProperties: false
    AccessForAllPNPRecordSetDType:
        description: |
            This is the root container for the set AfA PNP Records. The order of the records is not significant and the payload may be empty.
        type: object
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                description: |
                    This is used to contain the description of each of the individual AfA PNP Records.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AccessForAllPNPRecordDType"
        additionalProperties: false
    AccessModeRequiredDType:
        description: |
            The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AccessMode vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AccessMode vocabulary, for the new adaptation access mode.
                type: string
        additionalProperties: false
    AdaptationDetailRequiredDType:
        description: |
            The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. 
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationDetail vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.
                type: string
        additionalProperties: false
    AdaptationMediaRequiredDType:
        description: |
            The container for the requirement for a particular type of media.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationMedia vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.
                type: string
        additionalProperties: false
    AdaptationTypeRequiredDType:
        description: |
            Nature or genre of the adaptation required as a replacement for a specific access mode.
        type: object
        required: 
            - existing-access-mode
            - adaptation-request
        x-1edtech-confidentiality: unrestricted
        properties: 
            existing-access-mode: 
                description: |
                    A value, from the AdaptationType vocabulary, for the existing access mode.
                type: string
            adaptation-request: 
                description: |
                    A value, from the AdaptatonType vocabulary, for the new adaptation media mode.
                type: string
        additionalProperties: false
    AdditionalTestingTimeDType:
        description: |
            The container for the set of additional testing time preferences. Only one of the available options can be selected.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            time-multiplier: 
                description: Providing the additional testing time as a multiplier of the set time. Model Primitive Datatype = Float.
                type: number
                format: float
            fixed-minutes: 
                description: Providing the additional testing time as an additional number of minutes. Model Primitive Datatype = Integer.
                type: integer
                format: int32
            unlimited: 
                description: Providing the additional testing time as an unlimited time. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    BrailleDType:
        description: |
            The container for the set of preferences for Braille devices.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            language: 
                description: The native language, defined as per [RFC 3066], to which the Braille conversion will be applied. Model Primitive Datatype = Language.
                type: string
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            delivery-mode: 
                description: |
                    The delivery mode for the Braille device: this is defined as an enumerated vocabulary.
                type: string
                enum: 
                   - refreshable
                   - embossed
                default: refreshable
            grade: 
                description: |
                    The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.
                type: string
                enum: 
                   - 1
                   - 2
                   - 3
                default: 2
            braille-type: 
                description: |
                    The type of Braille to be used.
                type: string
            math-type: 
                description: |
                    The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.
                type: string
        additionalProperties: false
    CalculatorDType:
        description: |
            The data-type for the type of calculator tool.
        type: object
        required: 
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            calculator-type: 
                description: |
                    The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.
                type: string
            value: 
                description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                type: string
                enum: 
                   - active
        additionalProperties: false
    EnvironmentDType:
        description: |
            The container for the set of preferences for the environment within which the learning exerience is to take place.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            description: 
                description: A human-readable description of the accessibility support environment. Model Primitive Datatype = NormalizedString.
                type: string
            medical: 
                description: A human-readable description of the available medical support. Model Primitive Datatype = NormalizedString.
                type: string
            software: 
                description: A human-readable description of the available accessibility software. Model Primitive Datatype = NormalizedString.
                type: string
            hardware: 
                description: A human-readable description of the available accessibility hardware. Model Primitive Datatype = NormalizedString.
                type: string
            breaks: 
                description: A human-readable description of the available breaks i.e. moments away for the activity itself. Model Primitive Datatype = Boolean.
                type: boolean
        additionalProperties: false
    FeatureSetDType:
        description: |
            This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.
        type: object
        x-1edtech-privacy:
            - extensions
        x-1edtech-confidentiality: unrestricted
        x-1edtech-confidentiality-normal: 
            - extensions
        properties: 
            linguistic-guidance: 
                description: Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyword-emphasis: 
                description: Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyword-translation: 
                description: Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            simplified-language-portions: 
                description: Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            simplified-graphics: 
                description: Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            item-translation: 
                description: Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            sign-language: 
                description: Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            encouragement: 
                description: Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            additional-testing-time: 
                description: Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            line-reader: 
                description: Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            magnification: 
                description: Used to indicate that the corresponding 'magnification' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spoken: 
                description: Used to indicate that the corresponding 'spoken' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            tactile: 
                description: Used to indicate that the corresponding 'tactile' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            braille: 
                description: Used to indicate that the corresponding 'braille' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            answer-masking: 
                description: Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            keyboard-directions: 
                description: Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            additional-directions: 
                description: Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            long-description: 
                description: Used to indicate that the corresponding 'long-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            captions: 
                description: Used to indicate that the corresponding 'captions' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            transcript: 
                description: Used to indicate that the corresponding 'transcript' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            alternative-text: 
                description: Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            audio-description: 
                description: Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            high-contrast: 
                description: Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            input-requirements: 
                description: Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            language-of-interface: 
                description: Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            layout-single-column: 
                description: Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            text-appearance: 
                description: Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            calculator-on-screen: 
                description: Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            dictionary-on-screen: 
                description: Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            glossary-on-screen: 
                description: Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            thesaurus-on-screen: 
                description: Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            homophone-checker-on-screen: 
                description: Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            note-taking-on-screen: 
                description: Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            visual-organizer-on-screen: 
                description: Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            outliner-on-screen: 
                description: Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            peer-interaction-on-screen: 
                description: Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            spell-checker-on-screen: 
                description: Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: true
    FontFaceDType:
        description: |
            The container for information about the font face to be used.
        type: object
        required: 
            - generic-font-face
        x-1edtech-confidentiality: unrestricted
        properties: 
            font-name: 
                description: The name of the font to be used for text display. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 0
                items: 
                    type: string
            generic-font-face: 
                description: |
                    The generic font face to be use for text. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - serif
                   - sans serif
                   - monospaced
                   - cursive
                   - fantasy
        additionalProperties: false
    LanguageModeDType:
        description: |
            The container for the set of preferences related to the language mode.
        type: object
        required: 
            - language
        x-1edtech-confidentiality: unrestricted
        properties: 
            language: 
                description: Identification of the language. The permitted value is based upon [RFC 3066]. Model Primitive Datatype = Language.
                type: string
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    LineReaderDType:
        description: |
            The container for the preference settings for line readers.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            highlight-color: 
                description: The highlight color to be used by the display when identifying the position of the line reader. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    LongDescriptionDType:
        description: |
            The container for the preferences for the provision of long descriptions.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            hide-visually: 
                description: Defines whether or not the long description is hidden from view as a default setting. Model Primitive Datatype = Boolean.
                type: boolean
                default: true
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    MagnificationDType:
        description: |
            The container for the details about the magnification preferences.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            all-content: 
                $ref: "#/definitions/ZoomAmountDType"
            select-magnification: 
                $ref: "#/definitions/SelectMagnificationDType"
        additionalProperties: false
    PersonSourcedIdDType:
        description: |
            The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.
        type: object
        required: 
            - source-system
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            source-system: 
                description: The source system that was responsible for the allocation of the 'sourcedId' for the Person. Model Primitive Datatype = NormalizedString.
                type: string
            value: 
                description: Model Derived-Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    ReplacesAccessModeDType:
        description: |
            This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: false
    SelectMagnificationDType:
        description: |
            This is used to contain the zoom magnification factors for the display of text and non-text.
        type: object
        x-1edtech-confidentiality: unrestricted
        properties: 
            text: 
                $ref: "#/definitions/ZoomAmountDType"
            non-text: 
                $ref: "#/definitions/ZoomAmountDType"
        additionalProperties: false
    SingleAFAPNPRecordDType:
        description: |
            The root container for a single AfA PNP record.
        type: object
        required: 
            - access-for-all-pnp-record
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                $ref: "#/definitions/AccessForAllPNPRecordDType"
        additionalProperties: false
    SingleUserAFAPNPRecordDType:
        description: |
            The root container for the combined user information and their first AfA PNP record.
        type: object
        required: 
            - access-for-all-pnp-record
        x-1edtech-privacy:
            - access-for-all-pnp-record
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp-record
        properties: 
            access-for-all-pnp-record: 
                $ref: "#/definitions/UserAFAPNPRecordDType"
        additionalProperties: false
    SpokenDType:
        description: |
            The container for the preferences that are used to define the ways in which information is 'spoken'.
        type: object
        required: 
            - reading-type
            - link-indication
            - typing-echo
        x-1edtech-confidentiality: unrestricted
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            reading-type: 
                description: |
                    Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - screen-reader
                   - computer-read-aloud
                default: screen-reader
            restriction-type: 
                description: |
                    Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.
                type: array
                minItems: 0
                items: 
                    type: string
            speech-rate: 
                description: Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Model Primitive Datatype = Integer.
                type: integer
                format: int32
                default: 180
            pitch: 
                description: Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 0.5
            volume: 
                description: Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 0.5
            link-indication: 
                description: |
                    The nature of handling embedded links. This is based upon an enumerated vocabulary.
                type: string
                enum: 
                   - speak-link
                   - different-voice
                   - sound-effect
                   - none
            typing-echo: 
                description: |
                    Unit of reading to be spoken. This is an enumerated vocabulary.
                type: string
                enum: 
                   - characters
                   - words
                   - characters-and-words
                   - none
        additionalProperties: false
    TextAppearanceDType:
        description: |
            The container for the set of preferences for the appearance of text on a display.
        type: object
        x-1edtech-privacy:
            - extensions
        x-1edtech-confidentiality: unrestricted
        x-1edtech-confidentiality-normal: 
            - extensions
        properties: 
            replace-access-mode-auditory: 
                description: The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-color: 
                description: The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-item-size: 
                description: The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-olfactory: 
                description: The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-orientation: 
                description: The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-position: 
                description: The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-tactile: 
                description: The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-text-on-image: 
                description: The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-textual: 
                description: The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            replace-access-mode-visual: 
                description: The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            color-theme: 
                description: |
                    The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.
                type: string
            background-color: 
                description: Background color in an interface that is displaying text. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            font-color: 
                description: Font color in an interface that is displaying text. Model Primitive Datatype = String.
                type: string
                pattern: "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
            font-size: 
                description: Size of a font. This value is in points. Model Primitive Datatype = Float.
                type: number
                format: float
                default: 12.0
            font-face: 
                $ref: "#/definitions/FontFaceDType"
            line-spacing: 
                description: The line spacing. Model Primitive Datatype = Float.
                type: number
                format: float
            line-height: 
                description: The line height. Model Primitive Datatype = Float.
                type: number
                format: float
            letter-spacing: 
                description: The spacing between letters. This value is in points.  Model Primitive Datatype = Float.
                type: number
                format: float
            uniform-font-sizing: 
                description: Defines if uniform font sizing is to be used. If present then uniform spacing is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
            word-spacing: 
                description: The spacing between words. This value is in points.  Model Primitive Datatype = Float.
                type: number
                format: float
            word-wrapping: 
                description: Defines if word wrapping is to be used. If present then word wrapping is to be used. Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.
                type: string
                enum: 
                   - active
        additionalProperties: true
    UserAFAPNPRecordDType:
        description: |
            This is the container for each of the combined user information and AfA PNP record.
        type: object
        required: 
            - personSourcedId
            - activitySourcedId
            - user
            - access-for-all-pnp
        x-1edtech-privacy:
            - personSourcedId
            - user
            - access-for-all-pnp
        x-1edtech-confidentiality: veryrestricted
        x-1edtech-confidentiality-normal: 
            - personSourcedId
            - user
        x-1edtech-confidentiality-veryrestricted: 
            - access-for-all-pnp
        properties: 
            personSourcedId: 
                $ref: "#/definitions/PersonSourcedIdDType"
            activitySourcedId: 
                description: This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used. Model Primitive Datatype = NormalizedString.
                type: string
            user: 
                $ref: "#/definitions/UserRecordDType"
            access-for-all-pnp: 
                $ref: "#/definitions/AccessForAllPNPDType"
        additionalProperties: false
    UserIdDType:
        description: |
            This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
        type: object
        required: 
            - type
            - identifier
        x-1edtech-privacy:
            - type
            - identifier
        x-1edtech-confidentiality: normal
        x-1edtech-confidentiality-normal: 
            - type
            - identifier
        properties: 
            type: 
                description: The type of identifier. This is no predefined vocabuary. Model Primitive Datatype = NormalizedString.
                type: string
            identifier: 
                description: The identifier, of the defined type, for the user. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    UserRecordDType:
        description: |
            The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.
        type: object
        required: 
            - userIds
        x-1edtech-privacy:
            - userIds
            - extensions
        x-1edtech-confidentiality: normal
        x-1edtech-confidentiality-normal: 
            - userIds
            - extensions
        properties: 
            userIds: 
                description: |
                    This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/UserIdDType"
        additionalProperties: true
    ZoomAmountDType:
        description: |
            A data-type for amount of zoom i.e. magnification.
        type: object
        required: 
            - value
        x-1edtech-confidentiality: unrestricted
        properties: 
            zoom-amount: 
                description: The value for the zoom amount as a float number. Model Primitive Datatype = Float.
                type: number
                format: float
            value: 
                description: Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).
                type: string
                enum: 
                   - active
        additionalProperties: false
    imsx_CodeMinorDType:
        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
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - forbidden
                   - internal_server_error
                   - invalid_filter_field
                   - invalid_selection_field
                   - invalid_sort_field
                   - invaliddata
                   - server_busy
                   - unauthorisedrequest
                   - unknownobject
                   - unsupported
                   - user_already_exists
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Resources 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
        x-1edtech-confidentiality: unrestricted
        properties: 
            imsx_codeMajor: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_codeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

toc | top

Appendix C JSON Schema Listings

C1 JSON Schema Listings for the Set of Payloads

This is the set of JSON Schema listing that are used to validate the set of JSON payloads used by this service.

C1.1a JSON Schema for the "addAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-addafapnprecordforuserforactivity-requestpayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "addAfAPNPRecordForUserForActivity-requestpayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (addAfAPNPRecordForUserForActivity-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "access-for-all-pnp-record" : {
            "description" : "This is used to contain the description of a single AfA PNP Record.",
            "$ref" : "#/$defs/AccessForAllPNPRecordDType"
        }
    },
    "required" : [ "access-for-all-pnp-record" ],
    "additionalProperties" : false,
    "$defs" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "enriched","simplified" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "full-keyboard-control","full-mouse-control" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "description" : "Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "description" : "Certain words are designated in the content as key words.  Programs should designate how they are to be emphasized.  This value is used to define the corresponding user preference setting.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "description" : "Certain specific words would have translations available to users who need some assistance with difficult or important words in the content.   The user profile should specify the language requested and the content would supply translation for the required languages.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler language.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler graphics.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "description" : "An alternate item is made and the user exposed to the alternate language version.  The Item information must contain which specific language it supports.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "sign-language" : {
                    "description" : "Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "encouragement" : {
                    "description" : "Some users may benefit from receiving expressions of encouragement as they work on the Test/Item.  This is the container for the user preferences specific to the provision of expressions of encouragement.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "description" : "If a test has a time limit, the user will be allowed additional time to complete the test.  This is the container for the user's addition time preferences.",
                    "$ref" : "#/$defs/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "description" : "Describes the preferences for the use of a line reader.",
                    "$ref" : "#/$defs/LineReaderDType"
                },
                "magnification" : {
                    "description" : "Describes the use of the magnification settings for the user.",
                    "$ref" : "#/$defs/MagnificationDType"
                },
                "spoken" : {
                    "description" : "Describes the settings for use of Speech devices.",
                    "$ref" : "#/$defs/SpokenDType"
                },
                "tactile" : {
                    "description" : "Describes the settings for use of tactile devices.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "braille" : {
                    "description" : "Describes the settings for use of Braille devices.",
                    "$ref" : "#/$defs/BrailleDType"
                },
                "answer-masking" : {
                    "description" : "Various types of content masking are possible to limit the amount of content rendered when an item is first presented.  This is the container for the user's preferred masking settings for limiting the range of shown answers.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "description" : "Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "description" : "Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "description" : "An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.",
                    "$ref" : "#/$defs/LongDescriptionDType"
                },
                "captions" : {
                    "description" : "Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "environment" : {
                    "description" : "The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.",
                    "$ref" : "#/$defs/EnvironmentDType"
                },
                "transcript" : {
                    "description" : "A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "description" : "Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "description" : "Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "description" : "A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "description" : "The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "description" : "This is used to define the set of characteristics that describe the appearance of displayed text.",
                    "$ref" : "#/$defs/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "description" : "The presence of this attribute makes available, on screen, the calculator tool.",
                    "$ref" : "#/$defs/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "description" : "This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "prohibit-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "AccessForAllPNPRecordDType" : {
            "description" : "This is the container for each of the AfA PNP Records.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "description" : "This is the unique identifier for the person who owns the PNP record.",
                    "$ref" : "#/$defs/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "access-for-all-pnp" : {
                    "description" : "This is actual AfA PNP Record instance.",
                    "$ref" : "#/$defs/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "ebae","ueb" ]
                            }
                    ]
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "nemeth","ueb" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "basic","standard","scientific","graphing" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "description" : "This is the default zoom value for all content.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "select-magnification" : {
                    "description" : "This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.",
                    "$ref" : "#/$defs/SelectMagnificationDType"
                }
            },
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "description" : "The magnification value for text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "non-text" : {
                    "description" : "The magnification value for non-text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                }
            },
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                            }
                    ]
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "description" : "The font face. This is an enumerated vocabulary.",
                    "$ref" : "#/$defs/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        }
    }
}
        

C1.1b JSON Schema for the "addAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (201,default,401,403,404,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-addafapnprecordforuserforactivity-201-default-401-403-404-429-500-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "addAfAPNPRecordForUserForActivity-201-default-401-403-404-429-500-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (addAfAPNPRecordForUserForActivity-201-default-401-403-404-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "error","status","warning","error","status","warning","error","status","warning" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_codeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/$defs/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "$defs" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.2a JSON Schema for the "createAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-createafapnprecordforuserforactivity-requestpayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "createAfAPNPRecordForUserForActivity-requestpayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (createAfAPNPRecordForUserForActivity-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "access-for-all-pnp-record" : {
            "description" : "This is used to contain the combined description of the user and their first AfA PNP Record.",
            "$ref" : "#/$defs/UserAFAPNPRecordDType"
        }
    },
    "required" : [ "access-for-all-pnp-record" ],
    "additionalProperties" : false,
    "$defs" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "enriched","simplified" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "full-keyboard-control","full-mouse-control" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "description" : "Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "description" : "Certain words are designated in the content as key words.  Programs should designate how they are to be emphasized.  This value is used to define the corresponding user preference setting.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "description" : "Certain specific words would have translations available to users who need some assistance with difficult or important words in the content.   The user profile should specify the language requested and the content would supply translation for the required languages.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler language.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler graphics.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "description" : "An alternate item is made and the user exposed to the alternate language version.  The Item information must contain which specific language it supports.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "sign-language" : {
                    "description" : "Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "encouragement" : {
                    "description" : "Some users may benefit from receiving expressions of encouragement as they work on the Test/Item.  This is the container for the user preferences specific to the provision of expressions of encouragement.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "description" : "If a test has a time limit, the user will be allowed additional time to complete the test.  This is the container for the user's addition time preferences.",
                    "$ref" : "#/$defs/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "description" : "Describes the preferences for the use of a line reader.",
                    "$ref" : "#/$defs/LineReaderDType"
                },
                "magnification" : {
                    "description" : "Describes the use of the magnification settings for the user.",
                    "$ref" : "#/$defs/MagnificationDType"
                },
                "spoken" : {
                    "description" : "Describes the settings for use of Speech devices.",
                    "$ref" : "#/$defs/SpokenDType"
                },
                "tactile" : {
                    "description" : "Describes the settings for use of tactile devices.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "braille" : {
                    "description" : "Describes the settings for use of Braille devices.",
                    "$ref" : "#/$defs/BrailleDType"
                },
                "answer-masking" : {
                    "description" : "Various types of content masking are possible to limit the amount of content rendered when an item is first presented.  This is the container for the user's preferred masking settings for limiting the range of shown answers.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "description" : "Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "description" : "Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "description" : "An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.",
                    "$ref" : "#/$defs/LongDescriptionDType"
                },
                "captions" : {
                    "description" : "Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "environment" : {
                    "description" : "The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.",
                    "$ref" : "#/$defs/EnvironmentDType"
                },
                "transcript" : {
                    "description" : "A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "description" : "Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "description" : "Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "description" : "A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "description" : "The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "description" : "This is used to define the set of characteristics that describe the appearance of displayed text.",
                    "$ref" : "#/$defs/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "description" : "The presence of this attribute makes available, on screen, the calculator tool.",
                    "$ref" : "#/$defs/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "description" : "This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "prohibit-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "ebae","ueb" ]
                            }
                    ]
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "nemeth","ueb" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "basic","standard","scientific","graphing" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "description" : "This is the default zoom value for all content.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "select-magnification" : {
                    "description" : "This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.",
                    "$ref" : "#/$defs/SelectMagnificationDType"
                }
            },
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "description" : "The magnification value for text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "non-text" : {
                    "description" : "The magnification value for non-text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                }
            },
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                            }
                    ]
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "description" : "The font face. This is an enumerated vocabulary.",
                    "$ref" : "#/$defs/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "UserAFAPNPRecordDType" : {
            "description" : "This is the container for each of the combined user information and AfA PNP record.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "description" : "This is the unique identifier for the person who owns the PNP record(s)",
                    "$ref" : "#/$defs/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "user" : {
                    "description" : "The user record. This contains the minimum information required to identify, uniquely (excluding the use of the 'sourcedid'), an individual in the AfA PNP Server. ",
                    "$ref" : "#/$defs/UserRecordDType"
                },
                "access-for-all-pnp" : {
                    "description" : "This is actual AfA PNP Record instance.",
                    "$ref" : "#/$defs/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","user","access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "UserIdDType" : {
            "description" : "This is the container for an external user identifier that should be used for this user in the cntext of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
            "type" : "object",
            "properties" : {
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of identifier. This is no predefined vocabuary.",
                    "type" : "string"
                },
                "identifier" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The identifier, of the defined type, for the user.",
                    "type" : "string"
                }
            },
            "required" : [ "type","identifier" ],
            "additionalProperties" : false
        },
        "UserRecordDType" : {
            "description" : "The container for the user information. This is a minimal set of information that can identify, uniquely, a user in the AfA PNP Server. It MUST not contain Personally Identifiable Information.",
            "type" : "object",
            "properties" : {
                "userIds" : {
                    "description" : "This is the set of external user identifiers that should be used for this user in the context of the AFA PNP Server. This might be an active directory id, an LTI id, or some other machine-readable identifier that is used for this person.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/UserIdDType"
                    }
                }
            },
            "required" : [ "userIds" ],
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        }
    }
}
        

C1.2b JSON Schema for the "createAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (201,default,401,403,404,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-createafapnprecordforuserforactivity-201-default-401-403-404-429-500-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "createAfAPNPRecordForUserForActivity-201-default-401-403-404-429-500-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (createAfAPNPRecordForUserForActivity-201-default-401-403-404-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "error","status","warning","error","status","warning","error","status","warning" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_codeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/$defs/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "$defs" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.3a JSON Schema for the "deleteAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.3b JSON Schema for the "deleteAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (204,default,401,403,404,429,500)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.4a JSON Schema for the "deleteAfAPNPRecordSetForUser" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.4b JSON Schema for the "deleteAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (204,default,401,403,404,429,500)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.5a JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Request Payload Validation.

No request payload is sent for this request, only path parameters are supplied, and so there is no JSON Schema listing.

C1.5b JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getafapnprecordforuserforactivity-200-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAfAPNPRecordForUserForActivity-200-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAfAPNPRecordForUserForActivity-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "access-for-all-pnp-record" : {
            "description" : "This is used to contain the description of a single AfA PNP Record.",
            "$ref" : "#/$defs/AccessForAllPNPRecordDType"
        }
    },
    "required" : [ "access-for-all-pnp-record" ],
    "additionalProperties" : false,
    "$defs" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "enriched","simplified" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "full-keyboard-control","full-mouse-control" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "description" : "Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "description" : "Certain words are designated in the content as key words.  Programs should designate how they are to be emphasized.  This value is used to define the corresponding user preference setting.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "description" : "Certain specific words would have translations available to users who need some assistance with difficult or important words in the content.   The user profile should specify the language requested and the content would supply translation for the required languages.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler language.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler graphics.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "description" : "An alternate item is made and the user exposed to the alternate language version.  The Item information must contain which specific language it supports.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "sign-language" : {
                    "description" : "Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "encouragement" : {
                    "description" : "Some users may benefit from receiving expressions of encouragement as they work on the Test/Item.  This is the container for the user preferences specific to the provision of expressions of encouragement.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "description" : "If a test has a time limit, the user will be allowed additional time to complete the test.  This is the container for the user's addition time preferences.",
                    "$ref" : "#/$defs/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "description" : "Describes the preferences for the use of a line reader.",
                    "$ref" : "#/$defs/LineReaderDType"
                },
                "magnification" : {
                    "description" : "Describes the use of the magnification settings for the user.",
                    "$ref" : "#/$defs/MagnificationDType"
                },
                "spoken" : {
                    "description" : "Describes the settings for use of Speech devices.",
                    "$ref" : "#/$defs/SpokenDType"
                },
                "tactile" : {
                    "description" : "Describes the settings for use of tactile devices.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "braille" : {
                    "description" : "Describes the settings for use of Braille devices.",
                    "$ref" : "#/$defs/BrailleDType"
                },
                "answer-masking" : {
                    "description" : "Various types of content masking are possible to limit the amount of content rendered when an item is first presented.  This is the container for the user's preferred masking settings for limiting the range of shown answers.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "description" : "Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "description" : "Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "description" : "An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.",
                    "$ref" : "#/$defs/LongDescriptionDType"
                },
                "captions" : {
                    "description" : "Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "environment" : {
                    "description" : "The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.",
                    "$ref" : "#/$defs/EnvironmentDType"
                },
                "transcript" : {
                    "description" : "A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "description" : "Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "description" : "Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "description" : "A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "description" : "The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "description" : "This is used to define the set of characteristics that describe the appearance of displayed text.",
                    "$ref" : "#/$defs/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "description" : "The presence of this attribute makes available, on screen, the calculator tool.",
                    "$ref" : "#/$defs/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "description" : "This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "prohibit-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "AccessForAllPNPRecordDType" : {
            "description" : "This is the container for each of the AfA PNP Records.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "description" : "This is the unique identifier for the person who owns the PNP record.",
                    "$ref" : "#/$defs/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "access-for-all-pnp" : {
                    "description" : "This is actual AfA PNP Record instance.",
                    "$ref" : "#/$defs/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "ebae","ueb" ]
                            }
                    ]
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "nemeth","ueb" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "basic","standard","scientific","graphing" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "description" : "This is the default zoom value for all content.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "select-magnification" : {
                    "description" : "This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.",
                    "$ref" : "#/$defs/SelectMagnificationDType"
                }
            },
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "description" : "The magnification value for text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "non-text" : {
                    "description" : "The magnification value for non-text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                }
            },
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                            }
                    ]
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "description" : "The font face. This is an enumerated vocabulary.",
                    "$ref" : "#/$defs/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        }
    }
}
        

C1.5c JSON Schema for the "getAfAPNPRecordForUserForActivity" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getafapnprecordforuserforactivity-default-400-401-403-404-429-500-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAfAPNPRecordForUserForActivity-default-400-401-403-404-429-500-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAfAPNPRecordForUserForActivity-default-400-401-403-404-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "error","status","warning","error","status","warning","error","status","warning" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_codeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/$defs/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "$defs" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.6a JSON Schema for the "getAfAPNPRecordSetForUser" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.6b JSON Schema for the "getAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getafapnprecordsetforuser-200-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAfAPNPRecordSetForUser-200-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAfAPNPRecordSetForUser-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "access-for-all-pnp-record" : {
            "description" : "This is used to contain the description of each of the individual AfA PNP Records.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/$defs/AccessForAllPNPRecordDType"
            }
        }
    },
    "additionalProperties" : false,
    "$defs" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "enriched","simplified" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "full-keyboard-control","full-mouse-control" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "description" : "Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "description" : "Certain words are designated in the content as key words.  Programs should designate how they are to be emphasized.  This value is used to define the corresponding user preference setting.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "description" : "Certain specific words would have translations available to users who need some assistance with difficult or important words in the content.   The user profile should specify the language requested and the content would supply translation for the required languages.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler language.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler graphics.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "description" : "An alternate item is made and the user exposed to the alternate language version.  The Item information must contain which specific language it supports.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "sign-language" : {
                    "description" : "Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "encouragement" : {
                    "description" : "Some users may benefit from receiving expressions of encouragement as they work on the Test/Item.  This is the container for the user preferences specific to the provision of expressions of encouragement.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "description" : "If a test has a time limit, the user will be allowed additional time to complete the test.  This is the container for the user's addition time preferences.",
                    "$ref" : "#/$defs/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "description" : "Describes the preferences for the use of a line reader.",
                    "$ref" : "#/$defs/LineReaderDType"
                },
                "magnification" : {
                    "description" : "Describes the use of the magnification settings for the user.",
                    "$ref" : "#/$defs/MagnificationDType"
                },
                "spoken" : {
                    "description" : "Describes the settings for use of Speech devices.",
                    "$ref" : "#/$defs/SpokenDType"
                },
                "tactile" : {
                    "description" : "Describes the settings for use of tactile devices.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "braille" : {
                    "description" : "Describes the settings for use of Braille devices.",
                    "$ref" : "#/$defs/BrailleDType"
                },
                "answer-masking" : {
                    "description" : "Various types of content masking are possible to limit the amount of content rendered when an item is first presented.  This is the container for the user's preferred masking settings for limiting the range of shown answers.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "description" : "Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "description" : "Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "description" : "An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.",
                    "$ref" : "#/$defs/LongDescriptionDType"
                },
                "captions" : {
                    "description" : "Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "environment" : {
                    "description" : "The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.",
                    "$ref" : "#/$defs/EnvironmentDType"
                },
                "transcript" : {
                    "description" : "A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "description" : "Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "description" : "Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "description" : "A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "description" : "The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "description" : "This is used to define the set of characteristics that describe the appearance of displayed text.",
                    "$ref" : "#/$defs/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "description" : "The presence of this attribute makes available, on screen, the calculator tool.",
                    "$ref" : "#/$defs/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "description" : "This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "prohibit-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "AccessForAllPNPRecordDType" : {
            "description" : "This is the container for each of the AfA PNP Records.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "description" : "This is the unique identifier for the person who owns the PNP record.",
                    "$ref" : "#/$defs/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "access-for-all-pnp" : {
                    "description" : "This is actual AfA PNP Record instance.",
                    "$ref" : "#/$defs/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "ebae","ueb" ]
                            }
                    ]
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "nemeth","ueb" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "basic","standard","scientific","graphing" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "description" : "This is the default zoom value for all content.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "select-magnification" : {
                    "description" : "This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.",
                    "$ref" : "#/$defs/SelectMagnificationDType"
                }
            },
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "description" : "The magnification value for text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "non-text" : {
                    "description" : "The magnification value for non-text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                }
            },
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                            }
                    ]
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "description" : "The font face. This is an enumerated vocabulary.",
                    "$ref" : "#/$defs/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        }
    }
}
        

C1.6c JSON Schema for the "getAfAPNPRecordSetForUser" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getafapnprecordsetforuser-default-400-401-403-404-429-500-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAfAPNPRecordSetForUser-default-400-401-403-404-429-500-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAfAPNPRecordSetForUser-default-400-401-403-404-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "error","status","warning","error","status","warning","error","status","warning" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_codeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/$defs/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "$defs" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7a JSON Schema for the "getAllAfAPNPRecords" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.7b JSON Schema for the "getAllAfAPNPRecords" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getallafapnprecords-200-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAllAfAPNPRecords-200-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAllAfAPNPRecords-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "access-for-all-pnp-record" : {
            "description" : "This is used to contain the description of each of the individual AfA PNP Records.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/$defs/AccessForAllPNPRecordDType"
            }
        }
    },
    "additionalProperties" : false,
    "$defs" : {
        "AccessForAllPNPDType" : {
            "description" : "A collection of information that states how a user prefers digital learning resources to be supplied. This is the root container and so identifies all of the available PNP properties.",
            "type" : "object",
            "properties" : {
                "access-mode-required" : {
                    "description" : "Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode. This attribute relates an 'existingAccessMode' to an access mode that the user prefers, called an 'adaptationRequest'. ",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AccessModeRequiredDType"
                    }
                },
                "adaptation-type-required" : {
                    "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode. This attribute relates an 'existingAccessMode' to an adaptation type that the user prefers, called an 'adaptationRequest'.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationTypeRequiredDType"
                    }
                },
                "at-interoperable" : {
                    "description" : "Model Primitive Datatype = Boolean. A preference for resources which are compatible with assistive technologies. Resources that are interoperable with AT should be selected whenever possible.  Interoperability is indicated by compliance with WCAG 2.0 checkpoints- 1.1.1, 1.3.1, 1.3.2, 2.4.4, 3.1.1, 3.1.2, 3.3.2, 4.1.1 and 4.1.2. The specific details of the AT are normally provided by a user agent or the operating system.  The example of 'atInteroperable=true' expresses this statement - resources that are interoperable with AT should be selected whenever possible.",
                    "type" : "boolean"
                },
                "educational-complexity-of-adaptation" : {
                    "description" : "A preference for a resource that is simplified or enriched relative to another resource that presents the same intellectual content. The example of 'educationalComplexityOfAdaptation=simplified' expresses this statement: Resources that are presented in a simplified form should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "enriched","simplified" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "hazard-avoidance" : {
                    "description" : "A resource having such a characteristic should not be delivered to a user with this preference. The example of 'hazardAvoidance=flashing' expresses this statement: Resources that include flashing visuals should never be presented.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "flashing","sound","olfactory-hazard","motion-simulation" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "input-requirements" : {
                    "description" : "Single input system that is sufficient to control a resource. The example of 'inputRequirements=fullKeyboardControl' expresses this statement: Resources that are fully usable with keyboard control should be selected whenever possible.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "full-keyboard-control","full-mouse-control" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "language-of-adaptation" : {
                    "description" : "A preference for the language of the adaptation [RFC 4646]. The example of 'languageOfAdaptation=spa' expresses this statement: Resources in Spanish should be selected whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "language-of-interface" : {
                    "description" : "A preference for the language of the user interface [RFC 4646]. The example of 'languageOfInterface=spa' expresses this statement: User interfaces should be presented in Spanish whenever possible.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/LanguageModeDType"
                    }
                },
                "adaptation-detail-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation detail that the user prefers, called an 'adaptationRequest'. The example of 'adaptationDetailRequired.existingAccessMode = auditory' an 'adaptationDetailRequired.adaptationRequested = verbatim' expresses this statement: Resources that are auditory should be replaced by verbatim alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationDetailRequiredDType"
                    }
                },
                "adaptation-media-required" : {
                    "description" : "This attribute relates an 'existingAccessMode' to an adaptation media that the user prefers, called an 'adaptationRequest'. The example of 'adaptationMediaRequired.existingAccessMode = textual' and 'adaptationMediaRequired.adaptationRequested = NIMAS' expresses this statement: Resources that are textual should be replaced by NIMAS-based alternatives.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/$defs/AdaptationMediaRequiredDType"
                    }
                },
                "educational-level-of-adaptation" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A preference for the education level of the adaptation. The example of 'educationalLevelOfAdaptation=Grade5' expresses this statement - resources that match education level Grade 5 should be selected whenever possible when used in conjunction with the ASN Educational Level Vocabulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "linguistic-guidance" : {
                    "description" : "Additional definitions or explanations are associated with the content to assist users who are not fluent readers of the language in which the content is written. This indicates that the user should be presented additional linguistic-guidance content when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-emphasis" : {
                    "description" : "Certain words are designated in the content as key words.  Programs should designate how they are to be emphasized.  This value is used to define the corresponding user preference setting.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyword-translation" : {
                    "description" : "Certain specific words would have translations available to users who need some assistance with difficult or important words in the content.   The user profile should specify the language requested and the content would supply translation for the required languages.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "simplified-language-portions" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler language.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "simplified-graphics" : {
                    "description" : "An entirely different version of a question may be given to a user using simpler graphics.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "item-translation" : {
                    "description" : "An alternate item is made and the user exposed to the alternate language version.  The Item information must contain which specific language it supports.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "sign-language" : {
                    "description" : "Animated or live action movie recordings can be provided to the user as either an ASL translation or Signed English version of the Item.  This value is used to define the corresponding user preference settings.",
                    "$ref" : "#/$defs/LanguageModeDType"
                },
                "encouragement" : {
                    "description" : "Some users may benefit from receiving expressions of encouragement as they work on the Test/Item.  This is the container for the user preferences specific to the provision of expressions of encouragement.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-testing-time" : {
                    "description" : "If a test has a time limit, the user will be allowed additional time to complete the test.  This is the container for the user's addition time preferences.",
                    "$ref" : "#/$defs/AdditionalTestingTimeDType"
                },
                "line-reader" : {
                    "description" : "Describes the preferences for the use of a line reader.",
                    "$ref" : "#/$defs/LineReaderDType"
                },
                "magnification" : {
                    "description" : "Describes the use of the magnification settings for the user.",
                    "$ref" : "#/$defs/MagnificationDType"
                },
                "spoken" : {
                    "description" : "Describes the settings for use of Speech devices.",
                    "$ref" : "#/$defs/SpokenDType"
                },
                "tactile" : {
                    "description" : "Describes the settings for use of tactile devices.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "braille" : {
                    "description" : "Describes the settings for use of Braille devices.",
                    "$ref" : "#/$defs/BrailleDType"
                },
                "answer-masking" : {
                    "description" : "Various types of content masking are possible to limit the amount of content rendered when an item is first presented.  This is the container for the user's preferred masking settings for limiting the range of shown answers.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "keyboard-directions" : {
                    "description" : "Directions that supply information about how to control an interaction using a keyboard, which may include specific keyboard shortcuts (combinations of key strokes that perform a specific function). This indicates that the user should be provided with keyboard directions when available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "additional-directions" : {
                    "description" : "Provides supplemental content that contains additional directions. Generally used as a cognitive support for some users that might benefit from some additional context, or specific guidance on how they might proceed through the content/problem/interaction. Note that this is distinct from keyboard directions, or directions for a specific support (like screen-reader). This indicates a user's preference that additional directions be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "long-description" : {
                    "description" : "An alternative text that is longer than a few sentences, generally used to describe a non-text object that requires a longer description than alternative text, and/or might require text formatting (headings, tables, lists, etc.). This indicates that the user prefers to have access to long descriptions when available.",
                    "$ref" : "#/$defs/LongDescriptionDType"
                },
                "captions" : {
                    "description" : "Synchronized visual and/or text alternative for both speech and non-speech audio information needed to understand the media content (from WCAG2, http://www.w3.org/TR/WCAG20/#captionsdef). This indicates a user's preference that captions be provided automatically when audio-visual material is displayed.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "environment" : {
                    "description" : "The term 'environment' contains information about the physical space which the candidate occupies, including the space itself, anything that should or should not be in that space, the social environment, medicines, software, hardware, machines, and whether the candidate will be taking breaks (usually referring to assessment breaks). In the context of an assessment, this environment information should be made available prior to the testing session to ensure it is setup correctly for the candidate.",
                    "$ref" : "#/$defs/EnvironmentDType"
                },
                "transcript" : {
                    "description" : "A non-synchronous written alternative for time-based media content, which includes dialogue (including the speaker name/role) and descriptions of sounds and/or important information that is presented visually. This indicates that the user should have access to transcript content if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "alternative-text" : {
                    "description" : "Text that is programmatically associated with non-text content and that serves the equivalent purpose (from WCAG 2.0, http://www.w3.org/TR/WCAG20/#text-altdef). Adding alternative text to an image is commonly done by using the alt attribute on an image (img) tag. It is intended to be a short description of the object. If the description is lengthy, or requires formatting of any kind, the object may also need a long description. This feature indicates a user's preference to have access to any alternative text.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "audio-description" : {
                    "description" : "Narration added to a soundtrack to describe important visual details that cannot be understood from the main soundtrack alone (from WCAG 2.0 http://www.w3.org/TR/WCAG20/#audiodescdef). Audio-descriptions can be useful for video-only media, or synchronized media (video and audio) content. This term indicates a user's preference that they should be given audio descriptions for media containing video.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "high-contrast" : {
                    "description" : "A resource offering an alternative visual version of another resource, with visual presentation of text and images of text that has a contrast ratio of at least 7:1, or, for larger text, a contrast ratio of at least 4.5:1 (WCAG2 Guideline 1.4.6): https://www.w3.org/TR/2008/WD-UNDERSTANDING-WCAG20-20081103/visual-audio-contrast7.html. This term indicates a user's preference that high-contrast alternatives (graphics, interface, or any other visually presented materials) be provided to the user if available.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "layout-single-column" : {
                    "description" : "The term 'layout-single-column' indicates that the user requests that the content be displayed in a single column of text when possible.",
                    "$ref" : "#/$defs/ReplacesAccessModeDType"
                },
                "text-appearance" : {
                    "description" : "This is used to define the set of characteristics that describe the appearance of displayed text.",
                    "$ref" : "#/$defs/TextAppearanceDType"
                },
                "calculator-on-screen" : {
                    "description" : "The presence of this attribute makes available, on screen, the calculator tool.",
                    "$ref" : "#/$defs/CalculatorDType"
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the dictionary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the glossary tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the thesaurus tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the homophone checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the note taking tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the visual organizer tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the outliner tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the peer interaction tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The presence of this attribute makes available, on screen, the spell checker tool.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "activate-at-initialization-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be activated during initalization of the system i.e. the default settings at the start of the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "activate-as-option-set" : {
                    "description" : "This attribute is used to define the set of features that MAY be activated during the learning activity by the user i.e. features that the user can may available.",
                    "$ref" : "#/$defs/FeatureSetDType"
                },
                "prohibit-set" : {
                    "description" : "This attribute is used to define the set of features that MUST be prohibited during initalization of the system i.e. the features that will not be available during the learning activity.",
                    "$ref" : "#/$defs/FeatureSetDType"
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "AccessForAllPNPRecordDType" : {
            "description" : "This is the container for each of the AfA PNP Records.",
            "type" : "object",
            "properties" : {
                "personSourcedId" : {
                    "description" : "This is the unique identifier for the person who owns the PNP record.",
                    "$ref" : "#/$defs/PersonSourcedIdDType"
                },
                "activitySourcedId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This is an identifier that has been assigned to the individual as part of the learning process for which the PNP record will be used.",
                    "type" : "string"
                },
                "access-for-all-pnp" : {
                    "description" : "This is actual AfA PNP Record instance.",
                    "$ref" : "#/$defs/AccessForAllPNPDType"
                }
            },
            "required" : [ "personSourcedId","activitySourcedId","access-for-all-pnp" ],
            "additionalProperties" : false
        },
        "AccessModeRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. Access mode that a user seeks either in an adaptation or an original resource as a replacement for a different access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AccessMode vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AccessMode vocabulary, for the new adaptation access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationDetailRequiredDType" : {
            "description" : "The container for the domain space and range space information for this class. This attribute uses different vocabularies for its current mode and adaotation value. ",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationDetail vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonDetail vocabulary, for the new adaptation detail mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "enhanced","verbatim","real-time","symbolic","recorded","synthesized" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationMediaRequiredDType" : {
            "description" : "The container for the requirement for a particular type of media.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationMedia vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonMedia vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "Daisy","braille","NIMAS","MathML","ChemML","LaTeX","OEBPS","PDF","LIT","Nemeth","EPUB3" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdaptationTypeRequiredDType" : {
            "description" : "Nature or genre of the adaptation required as a replacement for a specific access mode.",
            "type" : "object",
            "properties" : {
                "existing-access-mode" : {
                    "description" : "A value, from the AdaptationType vocabulary, for the existing access mode.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "auditory","color","item-size","olfactory","orientation","position","tactile","text-on-image","textual","visual" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "adaptation-request" : {
                    "description" : "A value, from the AdaptatonType vocabulary, for the new adaptation media mode.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "alternative-text","audio-description","captions","e-book","haptic","high-contrast","long-description","sign-language","transcript" ]
                            }
                    ]
                }
            },
            "required" : [ "existing-access-mode","adaptation-request" ],
            "additionalProperties" : false
        },
        "AdditionalTestingTimeDType" : {
            "description" : "The container for the set of additional testing time preferences. Only one of the available options can be selected.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "time-multiplier" : {
                    "description" : "Model Primitive Datatype = Float. Providing the additional testing time as a multiplier of the set time.",
                    "type" : "number",
                    "format" : "float"
                },
                "fixed-minutes" : {
                    "description" : "Model Primitive Datatype = Integer. Providing the additional testing time as an additional number of minutes.",
                    "type" : "integer",
                    "format" : "int32"
                },
                "unlimited" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Providing the additional testing time as an unlimited time.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "BrailleDType" : {
            "description" : "The container for the set of preferences for Braille devices.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. The native language, defined as per [RFC 3066], to which the Braille conversion will be applied.",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "delivery-mode" : {
                    "description" : "The delivery mode for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "embossed","refreshable" ],
                    "default" : "refreshable"
                },
                "grade" : {
                    "description" : "The grade, for the encoding, for the Braille device: this is defined as an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "1","2","3" ],
                    "default" : "2"
                },
                "braille-type" : {
                    "description" : "The type of Braille to be used.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "ebae","ueb" ]
                            }
                    ]
                },
                "math-type" : {
                    "description" : "The type of Braille to be used for the rendering if Maths: this is defined as an enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "nemeth","ueb" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                }
            },
            "additionalProperties" : false
        },
        "CalculatorDType" : {
            "description" : "The data-type for the type of calculator tool.",
            "type" : "object",
            "properties" : {
                "calculator-type" : {
                    "description" : "The type of calculator that can be used. This consists of an extensible predefined set of types of permitted calculator.",
                    "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "basic","standard","scientific","graphing" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                    ]
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        },
        "EnvironmentDType" : {
            "description" : "The container for the set of preferences for the environment within which the learning exerience is to take place.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "description" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the accessibility support environment.",
                    "type" : "string"
                },
                "medical" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available medical support.",
                    "type" : "string"
                },
                "software" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility software.",
                    "type" : "string"
                },
                "hardware" : {
                    "description" : "Model Primitive Datatype = NormalizedString. A human-readable description of the available accessibility hardware.",
                    "type" : "string"
                },
                "breaks" : {
                    "description" : "Model Primitive Datatype = Boolean. A human-readable description of the available breaks i.e. moments away for the activity itself.",
                    "type" : "boolean"
                }
            },
            "additionalProperties" : false
        },
        "FeatureSetDType" : {
            "description" : "This is the container for the set of features whose preferences can be controlled. When a feature is listed in an instance then the preference is to be set as determined by the intention of the contaning parent class.",
            "type" : "object",
            "properties" : {
                "linguistic-guidance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'linguistic-guidance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-emphasis" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-emphasis' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyword-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyword-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-language-portions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-language-portions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "simplified-graphics" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'simplified-graphics' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "item-translation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'item-translation' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "sign-language" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'sign-language' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "encouragement" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'encouragement' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-testing-time" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-testing-time' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "line-reader" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'line-reader' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "magnification" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'magnification' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spoken" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spoken' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'tactile' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "braille" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'braille' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "answer-masking" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'answer-masking' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "keyboard-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'keyboard-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "additional-directions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'additional-directions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "long-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'long-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "captions" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'captions' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "transcript" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'transcript' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "alternative-text" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'alternative-text' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "audio-description" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'audio-description' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "high-contrast" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'high-contrast' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "input-requirements" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'input-requirements' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "language-of-interface" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'language-of-interface' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "layout-single-column" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'layout-single-column' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "text-appearance" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'text-appearance' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "calculator-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'calculator-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "dictionary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'dictionary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "glossary-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'glossary-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "thesaurus-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'thesaurus-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "homophone-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'homophone-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "note-taking-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'note-taking-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "visual-organizer-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'visual-organizer-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "outliner-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'outliner-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "peer-interaction-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'peer-interaction-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "spell-checker-on-screen" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Used to indicate that the corresponding 'spell-checker-on-screen' preferences are to be established appropriately.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "FontFaceDType" : {
            "description" : "The container for information about the font face to be used.",
            "type" : "object",
            "properties" : {
                "font-name" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The name of the font to be used for text display.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "type" : "string"
                    }
                },
                "generic-font-face" : {
                    "description" : "The generic font face to be use for text. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "cursive","fantasy","monospaced","sans serif","serif" ]
                }
            },
            "required" : [ "generic-font-face" ],
            "additionalProperties" : false
        },
        "LanguageModeDType" : {
            "description" : "The container for the set of preferences related to the language mode.",
            "type" : "object",
            "properties" : {
                "language" : {
                    "description" : "Model Primitive Datatype = Language. Identification of the language. The permitted value is based upon [RFC 3066].",
                    "type" : "string"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "language" ],
            "additionalProperties" : false
        },
        "LineReaderDType" : {
            "description" : "The container for the preference settings for line readers.",
            "type" : "object",
            "properties" : {
                "highlight-color" : {
                    "description" : "Model Primitive Datatype = String. The highlight color to be used by the display when identifying the position of the line reader.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "LongDescriptionDType" : {
            "description" : "The container for the preferences for the provision of long descriptions.",
            "type" : "object",
            "properties" : {
                "hide-visually" : {
                    "description" : "Model Primitive Datatype = Boolean. Defines whether or not the long description is hidden from view as a default setting.",
                    "type" : "boolean",
                    "default" : true
                },
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "MagnificationDType" : {
            "description" : "The container for the details about the magnification preferences.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "all-content" : {
                    "description" : "This is the default zoom value for all content.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "select-magnification" : {
                    "description" : "This is an abstract attribute that enables the specific definition of the magnification for text and non-text content.",
                    "$ref" : "#/$defs/SelectMagnificationDType"
                }
            },
            "additionalProperties" : false
        },
        "PersonSourcedIdDType" : {
            "description" : "The data-type for the sourcedId of a Person. This is used to identify the owner of a PNP Record. There is NO predefined format for this identifier.",
            "type" : "object",
            "properties" : {
                "source-system" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The source system that was responsible for the allocation of the 'sourcedId' for the Person.",
                    "type" : "string"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = NormalizedString.",
                    "type" : "string"
                }
            },
            "required" : [ "source-system","value" ],
            "additionalProperties" : false
        },
        "ReplacesAccessModeDType" : {
            "description" : "This is the container for the identification for the set of access modes whose operational state are to be replaced by the contained set of children. The presence of a child attribute means that the parent preference is to be applied to that attribute.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "additionalProperties" : false
        },
        "SelectMagnificationDType" : {
            "description" : "This is used to contain the zoom magnification factors for the display of text and non-text.",
            "type" : "object",
            "properties" : {
                "text" : {
                    "description" : "The magnification value for text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                },
                "non-text" : {
                    "description" : "The magnification value for non-text display.",
                    "$ref" : "#/$defs/ZoomAmountDType"
                }
            },
            "additionalProperties" : false
        },
        "SpokenDType" : {
            "description" : "The container for the preferences that are used to define the ways in which information is 'spoken'.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "reading-type" : {
                    "description" : "Deines the type of reading that is to be used. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "computer-read-aloud","screen-reader" ],
                    "default" : "screen-reader"
                },
                "restriction-type" : {
                    "description" : "Defines the type of restrictions to which the reading is to be applied. This is based upon an extendable enumerated vocbulary.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "anyOf" : [
                            {
                                "type" : "string",
                                "enum" : [ "unrestricted","word-by-word","directions-only","skip-math-equations","skip-chemistry-equations" ]
                            },
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            }
                        ]
                    }
                },
                "speech-rate" : {
                    "description" : "Model Primitive Datatype = Integer. Rate of speech of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.",
                    "type" : "integer",
                    "format" : "int32",
                    "default" : "180"
                },
                "pitch" : {
                    "description" : "Model Primitive Datatype = Float. Pitch of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others. Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "volume" : {
                    "description" : "Model Primitive Datatype = Float. Volume of a speech synthesizer. A speech synthesizer may be used by or with a number of technologies, including a screen reader, text reader/highlighter or Braille display, among others.  Use 0.0 = 'low', 0.5 = 'medium', 1.0 = 'high'.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 0.5
                },
                "link-indication" : {
                    "description" : "The nature of handling embedded links. This is based upon an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "different-voice","none","sound-effect","speak-link" ]
                },
                "typing-echo" : {
                    "description" : "Unit of reading to be spoken. This is an enumerated vocabulary.",
                    "type" : "string",
                    "enum" : [ "characters","characters-and-words","none","words" ]
                }
            },
            "required" : [ "reading-type","link-indication","typing-echo" ],
            "additionalProperties" : false
        },
        "TextAppearanceDType" : {
            "description" : "The container for the set of preferences for the appearance of text on a display.",
            "type" : "object",
            "properties" : {
                "replace-access-mode-auditory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to auditory based tools and/or content i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-color" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to color based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-item-size" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to item-size based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-olfactory" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to olfactory based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-orientation" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to orientation based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-position" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to position based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-tactile" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to tactile based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-text-on-image" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text-on-image based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-textual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to text based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "replace-access-mode-visual" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). The parent access mode preference is to be applied to visually based content and/or tools i.e. it replaces the default mode.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "color-theme" : {
                    "description" : "The color theme that SHOULD be applied to the text. This is an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = String.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-z|A-Z|.|_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "default","default-reverse","high-contrast","high-contrast-reverse","yellow-blue","blue-yellow","black-rose","rose-black","black-cyan","cyan-black","black-cream","cream-black","medgray-darkgray","darkgray-medgray" ]
                            }
                    ]
                },
                "background-color" : {
                    "description" : "Model Primitive Datatype = String. Background color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-color" : {
                    "description" : "Model Primitive Datatype = String. Font color in an interface that is displaying text.",
                    "type" : "string",
                    "pattern" : "(#)([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})"
                },
                "font-size" : {
                    "description" : "Model Primitive Datatype = Float. Size of a font. This value is in points.",
                    "type" : "number",
                    "format" : "float",
                    "default" : 12.0
                },
                "font-face" : {
                    "description" : "The font face. This is an enumerated vocabulary.",
                    "$ref" : "#/$defs/FontFaceDType"
                },
                "line-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The line spacing.",
                    "type" : "number",
                    "format" : "float"
                },
                "line-height" : {
                    "description" : "Model Primitive Datatype = Float. The line height.",
                    "type" : "number",
                    "format" : "float"
                },
                "letter-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between letters. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "uniform-font-sizing" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if uniform font sizing is to be used. If present then uniform spacing is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                },
                "word-spacing" : {
                    "description" : "Model Primitive Datatype = Float. The spacing between words. This value is in points. ",
                    "type" : "number",
                    "format" : "float"
                },
                "word-wrapping" : {
                    "description" : "Model Primitive Datatype = Empty (mapped to an enumeration value of active). Defines if word wrapping is to be used. If present then word wrapping is to be used.",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ZoomAmountDType" : {
            "description" : "A data-type for amount of zoom i.e. magnification.",
            "type" : "object",
            "properties" : {
                "zoom-amount" : {
                    "description" : "Model Primitive Datatype = Float. The value for the zoom amount as a float number.",
                    "type" : "number",
                    "format" : "float"
                },
                "value" : {
                    "description" : "Model Derived-Primitive Datatype = Empty (mapped to an enumeration value of active).",
                    "type" : "string",
                    "enum" : [ "active" ]
                }
            },
            "required" : [ "value" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7c JSON Schema for the "getAllAfAPNPRecords" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/afapnp/v1p0/schema/jsd/afapnpservicev1p0-getallafapnprecords-default-400-401-403-404-429-500-responsepayload-schemav1p0p0.json).

{
    "$schema": "http://json-schema.org/draft/2020-12/schema",
    "$id" : "getAllAfAPNPRecords-default-400-401-403-404-429-500-responsepayload-schema.json",
    "title" : "Access For All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding Version 1.0 Candidate Final JSON Schema Binding (getAllAfAPNPRecords-default-400-401-403-404-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech, USA), Tom Hoffman (1EdTEch, USA), Madeleine Rothberg (WGBH, USA);  Version-1.0;  Release Date-1st May, 2024. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported","failure","processing","success","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "error","status","warning","error","status","warning","error","status","warning" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_codeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/$defs/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "$defs" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/$defs/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","forbidden","internal_server_error","invalid_filter_field","invalid_selection_field","invalid_sort_field",
                                "invaliddata","server_busy","unauthorisedrequest","unknownobject","unsupported","user_already_exists" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

toc | top

About this Document

Title: 1EdTech Access for All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding v1.0
Editors: Colin Smythe, 1EdTech (UK)
Tom Hoffman, 1EdTech (USA)

Co-chairs: Padraig O'hiceadha, Houghton Mifflin Harcourt (USA)
Mark Hakkinen, ETS (USA)
Mike Powell, Pearson (USA)

Version: 1.0
Version Date: 1st May, 2024
Status: 1EdTech Candidate Final
Summary: This document contains the 1EdTech Access For All Personal Needs and Preferences Service Specification 1.0. This part of the Access For All specification provides a description of a learner's functional abilities and the assistive technology or other non-standard technology in use as well as other user preferences. This includes defining the exchange of a set of AfA PNP records. This document describes how the service model is realised as a REST/JSON synchronous messaging protocol.

Revision Information: This is the first version of the 1EdTech Access for All (AfA) Personal Needs and Preferences Service REST/JSON Binding 1.0 specification.
Purpose: For early adoption by the 1EdTech Members. This version is not available to non-1EdTech Members.
Document Location: https://www.1edtech.org/accessibility/afav3p0pd/AfA3p0_PNPRESTBinding_v1p0cf.html

toc | top

List of Contributors

The following individuals contributed to the development of this document:

Paul Grudnitski amp.io (USA)
Mark Hakkinen ETS (USA)
Susan Haught 1EdTech (USA)
Tom Hoffmann 1EdTech (USA)
Mark Molenaar Apenutmize (Netherlands)
Pariag O'hiceadha HMH (UK)
Mike Powell Pearson (USA)
Julien Sebire O.A.T. (Luxemburgh)
Colin Smythe 1EdTech (USA)

toc | top

Revision History

Version No. Release Date Comments
Candidate Final 1.0 1st May, 2024 The first release of the Access For All Personal Needs and Preferences Service REST/JSON Binding specification. This is for early adoption by 1EdTech Members and to provide feedback to inform the completion of the Final Release.

toc | top

1EdTech Consortium, Inc. ("1EdTech") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

1EdTech makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an "As Is" and "As Available" basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

1EdTech would appreciate receiving your comments and suggestions.

Please contact 1EdTech through our website at https://www.1edtech.org.

Please refer to Document Name: 1EdTech Access for All (AfA) Personal Needs and Preferences (PNP) Service REST/JSON Binding v1.0

Date: 1st May, 2024

toc | top