diff --git a/CHANGELOG.md b/CHANGELOG.md index fba6d17a08..acfd95c3a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Changelog QualityOnDemand ## Table of Contents - -- **[v0.10.1](#v0101)** +- **[r1.1](#r11)** +- [v0.10.1](#v0101) - [v0.10.0](#v0100) - [v0.10.0-rc2](#v0100-rc2) - [v0.10.0-rc](#v0100-rc) @@ -16,6 +16,109 @@ Version numbers 0.2.x to 0.7.x were intentionally not used to avoid conflicts wi **Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.** +# r1.1 +## Release Notes + +This pre-release contains the definition and documentation of +* quality-on-demand v0.11.0-rc.1 +* qos-profiles v0.11.0-rc.1 +* qod-provisioning v0.1.0-rc.1 + +The API definition(s) are based on +* Commonalities v0.4.0-rc.1 +* Identity and Consent Management v0.2.0-rc.2 + +Note: the previous qod v0.10.1 API with endpoints for QoS Sessions and QoS Profiles has been split into two APIs. There are additional breaking changes. + +## quality-on-demand v0.11.0-rc.1 + +**quality-on-demand v0.11.0-rc.1 is the first release candidate of the version 0.11.0** + +Version 0.11.0 provides the QoS Sessions endpoints from v0.10.1, adds one endpoint /retrieve-sessions, and is aligned with Commonalities 0.4.0 and Identity and Consent Management 0.2.0. **There are breaking changes compared to v0.10.1.** + +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/quality-on-demand.yaml&nocors) + - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/quality-on-demand.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/quality-on-demand.yaml) + +### Added +* New operation retrieveSessions to get a list of sessions for a given device by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/325 +* Added the `statusInfo` as parameter to `SessionInfo` by @maxl2287 in https://github.com/camaraproject/QualityOnDemand/pull/273 +* Added x-correlator header to requests and responses by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/283 +* Added security scheme and scopes for each endpoint / method by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/295 + + +### Changed +* Made + prefix mandatory for phoneNumber by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/301 +* Clarification of concepts and properties related to the management of session duration and session extension by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/296 +* Updated Authorization and Authentication text to ICM release 0.2.0 wording by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/327 +* Aligned quality-on-demand further with Commonalties 0.4.0 by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/326 + * Added documentation about "Handling of device information" within the info description. + * Made device parameter optional within createSession + * Aligned Device object and info object with Commonalities + * Updated Schemata for error responses according to Commonalities + +### Fixed +* Removed unresolved documentation reference within quality-on-demand.yaml by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/324 + +### Removed +* Removed unused `messages` object in the `SessionInfo` schema by @sfnuser in https://github.com/camaraproject/QualityOnDemand/pull/312 +* Removed TermsOfService and Contact from APIs since they are optional and did not provide useful information by @RandyLevensalor in https://github.com/camaraproject/QualityOnDemand/pull/311 +* Removed cucumber directory and its content by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/323 + +## qos-profiles v0.11.0-rc.1 + +**qos-profiles v0.11.0-rc.1 is the first release candidate of the version 0.11.0** + +qos-profiles 0.11.0 provides the QoS Profiles endpoints from v0.10.1, changed the retrieval operation to allow the get the QoS Profiles available for a given device, and is aligned with Commonalities 0.4.0 and Identity and Consent Management 0.2.0. **There are breaking changes compared to v0.10.1.** + +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qos-profiles.yaml&nocors) + - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qos-profiles.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/qos-profiles.yaml) + +### Added +* Added the option to query profiles available on a given device by @RandyLevensalor in https://github.com/camaraproject/QualityOnDemand/pull/318 +* Added x-correlator header to requests and responses by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/283 +* Added security scheme and scopes for each endpoint / method by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/295 + +### Changed +* Changed the query for `/qos-profiles` from a GET to a POST to support the query for profiles available on a given device by @RandyLevensalor in https://github.com/camaraproject/QualityOnDemand/pull/318 +* Updated the description of `maxDuration` by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/296 +* Updated Authorization and Authentication text to ICM release 0.2.0 wording by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/327 +* Aligned qos-profiles further with Commonalties 0.4.0 by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/326 + * Added documentation about "Handling of device information" within the info description. + * Updated Schemata for error responses according to Commonalities + +### Fixed +* n/a + +### Removed +* Removed TermsOfService and Contact from APIs since they are optional and did not provide useful information by @RandyLevensalor in https://github.com/camaraproject/QualityOnDemand/pull/311 + +## qod-provisioning v0.1.0-rc.1 + +**qod-provisioning v0.1.0-rc.1 is the release candidate of the first initial version 0.1.0 of the API** + +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qod-provisioning.yaml&nocors) + - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qod-provisioning.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/qod-provisioning.yaml) + +### Added +* Initial version of QoD Provision mode API by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/299 + +### Changed +* n/a + +### Fixed +* n/a + +### Removed +* n/a + +**Full Changelog**: https://github.com/camaraproject/QualityOnDemand/compare/v0.10.1...r1.1 + # v0.10.1 **v0.10.1 is a patch release of v0.10.0 of the Quality-On-Demand (QoD) API. Please read also the notes and changes for v0.10.0 release** diff --git a/README.md b/README.md index 664e434075..194ad8954d 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ + # QualityOnDemand @@ -21,31 +22,42 @@ Repository to describe, develop, document and test the QualityOnDemand API famil * Started: October 2021 * Location: virtually -## Meetings - -* Meetings are held virtually: [Meeting registration / Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/94112812156?password=f238d6af-c959-48d7-a862-abdb3c648e40) -* Schedule: bi-weekly, Friday, 2 PM CET/CEST (13:00 UTC, 12:00 UTC during European DST). For date/time of the next meeting, see previous [meeting minutes](https://wiki.camaraproject.org/x/0AOeAQ). - ## Status and released versions -* Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest available release**. +* Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest public release**. + +* The latest public release is available here: https://github.com/camaraproject/QualityOnDemand/releases/latest +* For changes see [CHANGELOG.md](https://github.com/camaraproject/QualityOnDemand/blob/main/CHANGELOG.md) -* **The latest available and released version 0.10.1 is available [here](https://github.com/camaraproject/QualityOnDemand/tree/release-0.10.1)** - - API definition v0.10.1 with inline documentation: - - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/release-0.10.1/code/API_definitions/qod-api.yaml&nocors) - - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/release-0.10.1/code/API_definitions/qod-api.yaml) - - OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/release-0.10.1/code/API_definitions/qod-api.yaml) - -* The previous released version v0.9.0 is available within the [release-0.9.0 branch](https://github.com/camaraproject/QualityOnDemand/tree/release-0.9.0) -* For changes between v0.10.0 and v0.9.0 see the [CHANGELOG.md](https://github.com/camaraproject/QualityOnDemand/blob/main/CHANGELOG.md) +* The current pre-release for the [Fall24 meta-release](https://wiki.camaraproject.org/display/CAM/Meta-release+Fall24) is [r1.1](https://github.com/camaraproject/QualityOnDemand/tree/r1.1) +The release r1.1 contains the following API definitions (with inline documentation): + * **quality-on-demand v0.11.0-rc.1** + [[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/quality-on-demand.yaml) + [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/quality-on-demand.yaml&nocors) + [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/quality-on-demand.yaml) + * **qos-profiles v0.11.0-rc.1** + [[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/qos-profiles.yaml) + [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qos-profiles.yaml&nocors) + [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qos-profiles.yaml) + + * qod-provisioning v0.1.0-rc.1 (new, first initial version) + [[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r1.1/code/API_definitions/qod-provisioning.yaml) + [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qod-provisioning.yaml&nocors) + [[View it on Swagger Editor]](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r1.1/code/API_definitions/qod-provisioning.yaml) + * Provider implementations (PI) are available within separate repositories (partly for previous releases): * [QualityOnDemand_PI1](https://github.com/camaraproject/QualityOnDemand_PI1) by Deutsche Telekom * [QualityOnDemand_PI2](https://github.com/camaraproject/QualityOnDemand_PI2) by Orange * [QualityOnDemand_PI3](https://github.com/camaraproject/QualityOnDemand_PI3) by Spry Fox Networks -## Contributorship and mailing list +## Contributing -* To subscribe / unsubscribe to the mailing list of this Sub Project and thus be / resign as Contributor, please visit . -* A message to all Contributors of this Sub Project can be sent using . +* Meetings are held virtually + * Schedule: bi-weekly, Friday, 2 PM CET/CEST (13:00 UTC, 12:00 UTC during European DST). For date/time of the next meeting, see previous meeting minutes + * [Registration / Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/94112812156?password=f238d6af-c959-48d7-a862-abdb3c648e40) + * Minutes: Access [meeting minutes](https://wiki.camaraproject.org/x/0AOeAQ) +* Mailing List + * Subscribe / unsubscribe to the mailing list of this Sub Project . + * A message to the community of this Sub Project can be sent using . diff --git a/code/API_definitions/qod-provisioning.yaml b/code/API_definitions/qod-provisioning.yaml index d635ff6698..fd22e488ea 100644 --- a/code/API_definitions/qod-provisioning.yaml +++ b/code/API_definitions/qod-provisioning.yaml @@ -60,15 +60,15 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html - version: wip - x-camara-commonalities: 0.4.0 + version: 0.1.0-rc.1 + x-camara-commonalities: 0.4.0-rc.1 externalDocs: description: Project documentation at CAMARA url: https://github.com/camaraproject/QualityOnDemand servers: - - url: "{apiRoot}/qod-provisioning/vwip" + - url: "{apiRoot}/qod-provisioning/v0.1rc1" variables: apiRoot: default: http://localhost:9091 @@ -400,7 +400,7 @@ components: sink: type: string format: url - description: The address to which events shall be delivered using the selected protocol. + description: The address to which events shall be delivered, using the HTTP protocol. example: "https://endpoint.example.com/sink" sinkCredential: $ref: "#/components/schemas/SinkCredential" @@ -579,7 +579,7 @@ components: description: The type of the event. type: string enum: - - "org.camaraproject.qod-provisioning.vwip.status-changed" + - "org.camaraproject.qod-provisioning.v0.status-changed" specversion: description: Version of the specification to which this event conforms (must be 1.0 if it conforms to cloudevents 1.0.2 version) type: string @@ -601,7 +601,7 @@ components: discriminator: propertyName: "type" mapping: - org.camaraproject.qod-provisioning.vwip.status-changed: "#/components/schemas/EventStatusChanged" + org.camaraproject.qod-provisioning.v0.status-changed: "#/components/schemas/EventStatusChanged" EventStatusChanged: description: Event to notify a QoD provisioning status change @@ -1084,9 +1084,9 @@ components: summary: Cloud event example for QoD provisioning status change to UNAVAILABLE due to NETWORK_TERMINATED value: id: 83a0d986-0866-4f38-b8c0-fc65bfcda452 - source: https://api.example.com/qod-provisioning/vwip/device-qos/123e4567-e89b-12d3-a456-426614174000 + source: https://api.example.com/qod-provisioning/v0.1/device-qos/123e4567-e89b-12d3-a456-426614174000 specversion: "1.0" - type: org.camaraproject.qod-provisioning.vwip.status-changed + type: org.camaraproject.qod-provisioning.v0.status-changed time: 2021-12-12T00:00:00Z data: provisioningId: 123e4567-e89b-12d3-a456-426614174000 diff --git a/code/API_definitions/qos-profiles.yaml b/code/API_definitions/qos-profiles.yaml index e213ad8c97..ff99939800 100644 --- a/code/API_definitions/qos-profiles.yaml +++ b/code/API_definitions/qos-profiles.yaml @@ -52,20 +52,19 @@ info: (FAQs will be added in a later version of the documentation) - version: wip - license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html + version: 0.11.0-rc.1 + x-camara-commonalities: 0.4.0-rc.1 - x-camara-commonalities: 0.4.0 externalDocs: description: Project documentation at Camara url: https://github.com/camaraproject/QualityOnDemand servers: - - url: "{apiRoot}/qos-profiles/vwip" + - url: "{apiRoot}/qos-profiles/v0.11rc1" variables: apiRoot: default: http://localhost:9091 diff --git a/code/API_definitions/quality-on-demand.yaml b/code/API_definitions/quality-on-demand.yaml index 3d7edd7904..edbe7d9027 100644 --- a/code/API_definitions/quality-on-demand.yaml +++ b/code/API_definitions/quality-on-demand.yaml @@ -92,20 +92,18 @@ info: (FAQs will be added in a later version of the documentation) - version: wip - license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html - - x-camara-commonalities: 0.4.0 + version: 0.11.0-rc.1 + x-camara-commonalities: 0.4.0-rc.1 externalDocs: description: Project documentation at Camara url: https://github.com/camaraproject/QualityOnDemand servers: - - url: "{apiRoot}/quality-on-demand/vwip" + - url: "{apiRoot}/quality-on-demand/v0.11rc1" variables: apiRoot: default: http://localhost:9091 @@ -505,7 +503,7 @@ components: sink: type: string format: url - description: The address to which events about all status change events of the session (e.g. session termination) shall be delivered. + description: The address to which events about all status changes of the session (e.g. session termination) shall be delivered, using the HTTP protocol. example: "https://endpoint.example.com/sink" sinkCredential: description: A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. diff --git a/documentation/API_documentation/Notifications.md b/documentation/API_documentation/Notifications.md deleted file mode 100644 index 1f19f27939..0000000000 --- a/documentation/API_documentation/Notifications.md +++ /dev/null @@ -1,6 +0,0 @@ -# Relevant notifications for QoD APIs - -|Notification|Description |Tested(Y/N)| -|---|---|---| -| SESSION_TERMINATION| |Y | - diff --git a/documentation/API_documentation/qod-provisioning-API-Readiness-Checklist.md b/documentation/API_documentation/qod-provisioning-API-Readiness-Checklist.md index 542e6776e9..766d8c8924 100644 --- a/documentation/API_documentation/qod-provisioning-API-Readiness-Checklist.md +++ b/documentation/API_documentation/qod-provisioning-API-Readiness-Checklist.md @@ -3,16 +3,16 @@ Checklist for qod-provisioning v0.1.0-rc.1 in r1.1 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Comments | -|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|----| -| 1 | API definition | M | M | M | M | Y | PR: /code/API_definitions/qod-provisioning.yaml | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | | +|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|------| +| 1 | API definition | M | M | M | M | Y | /code/API_definitions/qod-provisioning.yaml | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | | | 3 | Guidelines from ICM applied | O | M | M | M | Y | | | 4 | API versioning convention applied | M | M | M | M | Y | | | 5 | API documentation | M | M | M | M | Y | inline in YAML | -| 6 | User stories | O | O | O | M | N/A | | -| 7 | Basic API test cases & documentation | O | M | M | M | tbd | | -| 8 | Enhanced API test cases & documentation | O | O | O | M | N/A | link | +| 6 | User stories | O | O | O | M | N/A | | +| 7 | Basic API test cases & documentation | O | M | M | M | tbd | | +| 8 | Enhanced API test cases & documentation | O | O | O | M | N/A | | | 9 | Test result statement | O | O | O | M | N/A | | | 10 | API release numbering convention applied | M | M | M | M | Y | | | 11 | Change log updated | M | M | M | M | tbd | /CHANGELOG.md | -| 12 | Previous public release was certified | O | O | O | M | N/A | | +| 12 | Previous public release was certified | O | O | O | M | N/A | | diff --git a/documentation/API_documentation/qos-profiles-API-Readiness-Checklist.md b/documentation/API_documentation/qos-profiles-API-Readiness-Checklist.md index 5c8a80e7f8..9470870da0 100644 --- a/documentation/API_documentation/qos-profiles-API-Readiness-Checklist.md +++ b/documentation/API_documentation/qos-profiles-API-Readiness-Checklist.md @@ -3,9 +3,9 @@ Checklist for qos-profiles v0.11.0-rc.1 in r1.1 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Comments | -|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:| -| 1 | API definition | M | M | M | M | tbd | /code/API_definitions/qos-profiles.yaml | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | tbd | | +|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|----| +| 1 | API definition | M | M | M | M | Y | /code/API_definitions/qos-profiles.yaml | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | | | 3 | Guidelines from ICM applied | O | M | M | M | Y | | | 4 | API versioning convention applied | M | M | M | M | Y | | | 5 | API documentation | M | M | M | M | Y | inline within YAML | @@ -14,7 +14,7 @@ Checklist for qos-profiles v0.11.0-rc.1 in r1.1 | 8 | Enhanced API test cases & documentation | O | O | O | M | N | link | | 9 | Test result statement | O | O | O | M | N | link | | 10 | API release numbering convention applied | M | M | M | M | Y | | -| 11 | Change log updated | M | M | M | M | tbd | /CHANGELOG.md | +| 11 | Change log updated | M | M | M | M | Y | /CHANGELOG.md | | 12 | Previous public release was certified | O | O | O | M | N | | To fill the checklist: diff --git a/documentation/API_documentation/quality-on-demand-API-Readiness-Checklist.md b/documentation/API_documentation/quality-on-demand-API-Readiness-Checklist.md index 06bf140bce..2d29c81b0c 100644 --- a/documentation/API_documentation/quality-on-demand-API-Readiness-Checklist.md +++ b/documentation/API_documentation/quality-on-demand-API-Readiness-Checklist.md @@ -5,16 +5,16 @@ Checklist for quality-on-demand v0.11.0-rc.1 in r1.1 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Comments | |----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|----| | 1 | API definition | M | M | M | M | Y | /code/API_definitions/quality-on-demand.yaml | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | tbd | | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | | | 3 | Guidelines from ICM applied | O | M | M | M | Y | | | 4 | API versioning convention applied | M | M | M | M | Y | | | 5 | API documentation | M | M | M | M | Y | inline in YAML | -| 6 | User stories | O | O | O | M | ? | /documentation/API_documentation/QoD_User_Story.md | -| 7 | Basic API test cases & documentation | O | M | M | M | tbd | /code/Test_definitions/QoD_API_Test.feature | +| 6 | User stories | O | O | O | M | tbd | /documentation/API_documentation/QoD_User_Story.md (review/update tbd) | +| 7 | Basic API test cases & documentation | O | M | M | M | tbd | /code/Test_definitions/QoD_API_Test.feature (update tbd) | | 8 | Enhanced API test cases & documentation | O | O | O | M | N | link | | 9 | Test result statement | O | O | O | M | N | | | 10 | API release numbering convention applied | M | M | M | M | Y | | -| 11 | Change log updated | M | M | M | M | tbd | /CHANGELOG.md | +| 11 | Change log updated | M | M | M | M | Y | /CHANGELOG.md | | 12 | Previous public release was certified | O | O | O | M | ? | | To fill the checklist: