From 377c6565c306ae850caf853262c6d36b3f35c9f9 Mon Sep 17 00:00:00 2001
From: Panagiotis Pavlidis
Date: Mon, 22 Dec 2025 16:44:12 +0200
Subject: [PATCH 1/2] [API Proposal] TrustWorthiness Intent API #293
- OpenAPI schema as supporting document for TrustWorthiness Intent API
- API proposal template
---
.../TrustWorthiness_Intent_API_proposal.md | 74 +++++
.../camara_trustworthiness_intent_api.yaml | 313 ++++++++++++++++++
2 files changed, 387 insertions(+)
create mode 100644 documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
create mode 100644 documentation/SupportingDocuments/camara_trustworthiness_intent_api.yaml
diff --git a/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md b/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
new file mode 100644
index 0000000..c206986
--- /dev/null
+++ b/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
@@ -0,0 +1,74 @@
+# API Proposal Template
+
+This template captures all the information that a partner should fill out when proposing a new API (or API family) to CAMARA.
+
+### API family name
+
+Name of the API or API family.
+
+CAMARA TrustWorthiness INTENT API.
+
+### API family owner
+
+Company submitting the API proposal.
+
+National Centre for Scientific Research Demokritos (NCSRD)
+and Infolysis S.A.
+
+### API summary
+
+High level description / scope of the API or API family, and two/three examples of in-scope business cases.
+
+A Trustworthiness Intent API enabling developers and applications to request and
+monitor trust guarantees (security, privacy, reliability, resilience,safety) as
+high-level intents without specifying low-level configurations.
+
+### Technical viability
+
+Identify the underlying network/cloud capabilities which are needed for the support of this API or API family, relating these capabilities to standards maturity.
+_Example: this API requires the availability of NEF with this Rel-15 "X" feature._
+
+No network/cloud capabilities required. The API's bussiness logic is supported through an open-source
+AI-native trust orchestrator acts as the backend to produce trust scores to feed them in the correspondent network.
+
+### Commercial viability
+
+Specify the availability of commercial or (industrialized) open-source solutions for the identified network/cloud capabilities.
+_NOTE: If open-source, provide a publicly available reference/link to the actual solution, and specify the version under consideration._
+
+An open-source implementation is used called Cognitive Coordinator (CoCo), that is, an AI-native trust orchestrator.
+It interprets user trust intents expressed in natural language and translates them into actionable system configurations,
+dynamically computing a Level of Trustworthiness (LoT) that aligns with both semantic intent and real-world resource constraints.
+
+This is part of the SAFE-6G European Horizon project. (https://safe-6g.eu/)
+
+### YAML code available?
+
+YES / NO.
+YES
+
+### Validated in lab/productive environments?
+
+YES / NO.
+If YES, specify if it was lab network or productive network.
+
+YES, lab network.
+
+### Validated with real customers?
+
+YES / NO.
+If YES, specify how many customers participated in the evaluation, and what their use cases were.
+_NOTE: It is not mandatory (though recommendable) to specify the name of the customers._
+NO
+
+### Validated with operators?
+
+YES / NO.
+If YES, specify how many operators participated in the evaluation.
+_NOTE: It is not mandatory (though recommendable) to specify the name of the operators._
+NO
+
+### Supporters in API Backlog Working Group
+
+List of supporters.
+_NOTE: That shall be added by the Working Group. Supporting an API proposal means that the supporting company must provide at least 1 (one) Maintainer at the time of the Sub Project creation._
diff --git a/documentation/SupportingDocuments/camara_trustworthiness_intent_api.yaml b/documentation/SupportingDocuments/camara_trustworthiness_intent_api.yaml
new file mode 100644
index 0000000..cb06981
--- /dev/null
+++ b/documentation/SupportingDocuments/camara_trustworthiness_intent_api.yaml
@@ -0,0 +1,313 @@
+openapi: 3.1.0
+info:
+ title: CAMARA Trustworthiness Intent API (TWIA)
+ description: |
+ CAMARA proposal for a Trustworthiness Intent API enabling developers and applications
+ to request and monitor trust guarantees (security, privacy, reliability, resilience,
+ safety) as high-level intents without specifying low-level configurations.
+ version: 0.1.0
+
+servers:
+ - url: "{apiRoot}/api.example.com/v1"
+ variables:
+ apiRoot:
+ default: http://localhost:9091
+ description: API root
+
+tags:
+ - name: Intent
+ description: Manage trustworthiness intents
+
+paths:
+ /intents:
+ post:
+ tags: [Intent]
+ summary: Create a trustworthiness intent
+ operationId: createTrustIntent
+ requestBody:
+ required: true
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/TrustIntentCreate"
+ examples:
+ INTENT_INPUT:
+ summary: "Example Trustworthiness Intent"
+ description: "A request containing multiple trustworthiness categories."
+ value:
+ type: TrustworthinessIntent
+ serviceId: MyChatbotApp
+ data:
+ - label: Privacy
+ text: Ensure privacy requirements are accurate for location data sharing.
+ - label: Security
+ text: Verify every device accessing the network.
+ - label: Reliability
+ text: Take measures to ensure stability.
+ - label: Resilience
+ text: Can you guarantee fault tolerance for financial services.
+ - label: Safety
+ text: Implement safe data access and sharing policies.
+ responses:
+ "200":
+ description: Intent result
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TrustIntentResponse"
+ examples:
+ INTENT_RESPONSE:
+ $ref: "#/components/examples/INTENT_RESPONSE"
+ "400":
+ $ref: "#/components/responses/Generic400"
+ "401":
+ $ref: "#/components/responses/Generic401"
+ "403":
+ $ref: "#/components/responses/Generic403"
+ "404":
+ $ref: "#/components/responses/Generic404"
+ "422":
+ $ref: "#/components/responses/Generic422"
+ security:
+ - openId:
+ - trustworthiness-intent:create
+components:
+ securitySchemes:
+ openId:
+ description: OpenID Connect authentication
+ type: openIdConnect
+ openIdConnectUrl: https://example.com/.well-known/openid-configuration
+ schemas:
+ Intent:
+ type: object
+ properties:
+ type:
+ type: string
+ description: A label identifying the specific type of intent.
+ serviceId:
+ type: string
+ description: A unique ID correlating the service that request the intent.
+ required:
+ - type
+ discriminator:
+ propertyName: type
+ mapping:
+ TrustworthinessIntent: "#/components/schemas/TrustIntentCreate"
+ TrustIntentCreate:
+ allOf:
+ - $ref: "#/components/schemas/Intent"
+ - type: object
+ properties:
+ type:
+ type: string
+ description: The intent Type, in our case TrustWorthinessIntent.
+ const: TrustworthinessIntent
+ data:
+ type: array
+ description: List of intent segments, each with a category label and the corresponding text.
+ minItems: 1
+ items:
+ $ref: "#/components/schemas/TrustIntentTargets"
+ required:
+ - data
+ TrustIntentResponse:
+ type: object
+ properties:
+ assetId:
+ type: string
+ data:
+ type: array
+ description: List of intent scores, each with a category label and a corresponding score.
+ minItems: 1
+ items:
+ $ref: "#/components/schemas/TrustScoresResponse"
+ overall_trustworthiness_level:
+ type: number
+ description: The average trustworthiness level after summing up the individual scores.
+ minimum: 0.0
+ maximum: 1.0
+ required:
+ - assetId
+ - data
+ - overall_trustworthiness_level
+ TrustIntentTargets:
+ type: object
+ description: Trustworthiness objectives
+ properties:
+ label:
+ type: string
+ description: The high-level intent category (e.g., Security, Privacy, Reliability).
+ enum: [Security, Privacy, Reliability, Resilience, Safety]
+ text:
+ type: string
+ description: The natural language statement from the user/chatbot about that category.
+ minLength: 2
+ required:
+ - label
+ - text
+ TrustScoresResponse:
+ type: object
+ description: Trustworthiness score
+ properties:
+ label:
+ type: string
+ description: The high-level intent category (e.g., Security, Privacy, Reliability).
+ enum: [Security, Privacy, Reliability, Resilience, Safety]
+ score:
+ type: number
+ description: The score of an intent category.
+ minimum: 0.0
+ maximum: 1.0
+ required:
+ - label
+ - score
+ ErrorInfo:
+ description: Common schema for errors
+ type: object
+ required:
+ - status
+ - code
+ - message
+ properties:
+ status:
+ type: integer
+ description: HTTP response status code
+ code:
+ type: string
+ description: A human-readable code to describe the error
+ message:
+ type: string
+ description: A human-readable description of what the event represents
+ responses:
+ Generic400:
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/ErrorInfo"
+ - type: object
+ properties:
+ status:
+ enum:
+ - 400
+ code:
+ enum:
+ - INVALID_ARGUMENT
+ examples:
+ GENERIC_400_INVALID_ARGUMENT:
+ summary: Invalid argument
+ description: Invalid Argument. Generic Syntax Exception
+ value:
+ status: 400
+ code: INVALID_ARGUMENT
+ message: Client specified an invalid argument, request body or query param.
+ Generic401:
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/ErrorInfo"
+ - type: object
+ properties:
+ status:
+ enum:
+ - 401
+ code:
+ enum:
+ - UNAUTHENTICATED
+ examples:
+ GENERIC_401_UNAUTHENTICATED:
+ description: Request cannot be authenticated and a new authentication is required
+ value:
+ status: 401
+ code: UNAUTHENTICATED
+ message: Request not authenticated due to missing, invalid, or expired credentials. A new authentication is required.
+ Generic403:
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/ErrorInfo"
+ - type: object
+ properties:
+ status:
+ enum:
+ - 403
+ code:
+ enum:
+ - PERMISSION_DENIED
+ examples:
+ GENERIC_403_PERMISSION_DENIED:
+ summary: Permission denied
+ description: Permission denied. OAuth2 token access does not have the required scope or when the user fails operational security
+ value:
+ status: 403
+ code: PERMISSION_DENIED
+ message: Client does not have sufficient permissions to perform this action.
+ Generic404:
+ description: Not found
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/ErrorInfo"
+ - type: object
+ properties:
+ status:
+ enum:
+ - 404
+ code:
+ enum:
+ - IDENTIFIER_NOT_FOUND
+ examples:
+ GENERIC_404_IDENTIFIER_NOT_FOUND:
+ summary: Identifier not found
+ description: Some identifier cannot be matched.
+ value:
+ status: 404
+ code: IDENTIFIER_NOT_FOUND
+ message: Identifier not found.
+ Generic422:
+ description: Unprocessable Content
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/ErrorInfo"
+ - type: object
+ properties:
+ status:
+ enum:
+ - 422
+ code:
+ enum:
+ - MISSING_IDENTIFIER
+ - UNSUPPORTED_IDENTIFIER
+ examples:
+ GENERIC_422_MISSING_IDENTIFIER:
+ summary: Missing required identifier
+ description: Some identifier is missing.
+ value:
+ status: 422
+ code: MISSING_IDENTIFIER
+ message: Identifier is missing.
+ examples:
+ INTENT_RESPONSE:
+ description: The score that will feed the network perform configuration after the intent.
+ value:
+ assetId: chatbot application
+ data:
+ - label: Privacy
+ score: 0.7
+ - label: Security
+ score: 0.85
+ - label: Reliability
+ score: 0.9
+ - label: Resilience
+ score: 0.95
+ - label: Safety
+ score: 0.83
+ overall_trustworthiness_level: 0.85
From 902cb40e85ae0001b5e930d1d5ad35172b75e749 Mon Sep 17 00:00:00 2001
From: Panagiotis Pavlidis
Date: Tue, 23 Dec 2025 17:13:48 +0200
Subject: [PATCH 2/2] [API Proposal] TrustWorthiness Intent API #293 #294
- Address PR review comments for API proposal template
---
.../TrustWorthiness_Intent_API_proposal.md | 24 +------------------
1 file changed, 1 insertion(+), 23 deletions(-)
diff --git a/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md b/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
index c206986..6bc9aab 100644
--- a/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
+++ b/documentation/API proposals/TrustWorthiness_Intent_API_proposal.md
@@ -4,38 +4,26 @@ This template captures all the information that a partner should fill out when p
### API family name
-Name of the API or API family.
-
CAMARA TrustWorthiness INTENT API.
### API family owner
-Company submitting the API proposal.
-
National Centre for Scientific Research Demokritos (NCSRD)
-and Infolysis S.A.
+and Infolysis P.C.
### API summary
-High level description / scope of the API or API family, and two/three examples of in-scope business cases.
-
A Trustworthiness Intent API enabling developers and applications to request and
monitor trust guarantees (security, privacy, reliability, resilience,safety) as
high-level intents without specifying low-level configurations.
### Technical viability
-Identify the underlying network/cloud capabilities which are needed for the support of this API or API family, relating these capabilities to standards maturity.
-_Example: this API requires the availability of NEF with this Rel-15 "X" feature._
-
No network/cloud capabilities required. The API's bussiness logic is supported through an open-source
AI-native trust orchestrator acts as the backend to produce trust scores to feed them in the correspondent network.
### Commercial viability
-Specify the availability of commercial or (industrialized) open-source solutions for the identified network/cloud capabilities.
-_NOTE: If open-source, provide a publicly available reference/link to the actual solution, and specify the version under consideration._
-
An open-source implementation is used called Cognitive Coordinator (CoCo), that is, an AI-native trust orchestrator.
It interprets user trust intents expressed in natural language and translates them into actionable system configurations,
dynamically computing a Level of Trustworthiness (LoT) that aligns with both semantic intent and real-world resource constraints.
@@ -44,28 +32,18 @@ This is part of the SAFE-6G European Horizon project. (https://safe-6g.eu/)
### YAML code available?
-YES / NO.
YES
### Validated in lab/productive environments?
-YES / NO.
-If YES, specify if it was lab network or productive network.
-
YES, lab network.
### Validated with real customers?
-YES / NO.
-If YES, specify how many customers participated in the evaluation, and what their use cases were.
-_NOTE: It is not mandatory (though recommendable) to specify the name of the customers._
NO
### Validated with operators?
-YES / NO.
-If YES, specify how many operators participated in the evaluation.
-_NOTE: It is not mandatory (though recommendable) to specify the name of the operators._
NO
### Supporters in API Backlog Working Group