/*
* Orvanta API
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 6.5.0
* Contact: contact@orvanta.cloud
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// BpmnAuthoringGuide : The engine's own authoring vocabulary, served (#1560). Every substantive field is an **export**, not a description. `element_support` and `validation_codes` are `backend/orvanta-bpmn/element-support.json` and `validation-codes.json` verbatim -- generated from the engine's types and asserted byte-for-byte by that crate's tests -- and `api_issue_codes` reuses the constants the reporting sites themselves use. Restating any of it in prose would create a second copy that drifts from the engine.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct BpmnAuthoringGuide {
/// How to read the exported artifacts. Protocol, not engine semantics.
#[serde(rename = "how_to_use")]
pub how_to_use: Vec<String>,
/// The authoring loop, in the order it has to happen.
#[serde(rename = "workflow")]
pub workflow: Vec<String>,
/// `element-support.json`: 35 element kinds with per-kind support status, plus `caveats`, `recognized_tags`, `event_definitions` and `ignored_subtrees`. Read `caveats` first -- it is where a naive generator dies.
#[serde(rename = "element_support")]
pub element_support: serde_json::Value,
/// `validation-codes.json`: every code the engine's `ValidationError` can return.
#[serde(rename = "validation_codes")]
pub validation_codes: serde_json::Value,
/// The codes this API reports that the engine crate cannot, because they need a database -- delegate bindings, form bindings, `calledElement` resolution, task identities, plus `ParseError`. `validation_codes` alone is **not** the complete set of codes a caller sees.
#[serde(rename = "api_issue_codes")]
pub api_issue_codes: Vec<models::BpmnAuthoringGuideApiIssueCodesInner>,
}
impl BpmnAuthoringGuide {
/// The engine's own authoring vocabulary, served (#1560). Every substantive field is an **export**, not a description. `element_support` and `validation_codes` are `backend/orvanta-bpmn/element-support.json` and `validation-codes.json` verbatim -- generated from the engine's types and asserted byte-for-byte by that crate's tests -- and `api_issue_codes` reuses the constants the reporting sites themselves use. Restating any of it in prose would create a second copy that drifts from the engine.
pub fn new(how_to_use: Vec<String>, workflow: Vec<String>, element_support: serde_json::Value, validation_codes: serde_json::Value, api_issue_codes: Vec<models::BpmnAuthoringGuideApiIssueCodesInner>) -> BpmnAuthoringGuide {
BpmnAuthoringGuide {
how_to_use,
workflow,
element_support,
validation_codes,
api_issue_codes,
}
}
}