From a1b1d758e580bcc65f336e13023a21cd60c53f0d Mon Sep 17 00:00:00 2001 From: Dan Wolfson Date: Fri, 18 Sep 2026 12:33:11 -0500 Subject: [PATCH] fix(dr-egeria): fix silently-dropped/mis-mapped attributes found by new consumption audit (ISSUE-97 to ISSUE-106) Adds scripts/dr_egeria_attribute_consumption_audit.py, a static audit that checks whether every compact-spec attribute is actually read by its Dr.Egeria processor, and whether Reference Name/Reference Name List attributes are read with the matching guid/guid_list cardinality key. Used it to find and fix a wide batch of silently-dropped or mis-mapped attributes across Data Designer, Digital Product, Governance Officer, Collection Manager, Actor Manager, Solution Architect, and Feedback commands, plus two pyegeria SDK/model bugs it led to: - guid vs guid_list cardinality mismatches (In Data Specification/ Structure/Dictionary/Field) leaving singular references unlinked - Digital Product's Current Version never mapped (and Product Status/ Type removed as spec cruft with no real DTO field) - Purpose silently dropped on ~30 Collection-family commands despite being a required field - Data Lens's 9 fields, Data Grain's 3 fields, and Data Field's Position/Min/Max Cardinality never mapped - Link Agreement Terms and Conditions declared the wrong relationship type entirely (CollectionMembership instead of the real AgreementItem) - Link Associated List had no implementation at all (always raised NotImplementedError); wired via the existing generic MetadataExpert.create_related_elements mechanism - Create Glossary was unconditionally applying both Taxonomy and CanonicalVocabulary classifications regardless of user input - pyegeria: InitialClassifications' serializer popped the wrong dict key after by_alias=True dumping, silently dropping every classification property beyond "class" across the whole SDK - several case-mismatched/phantom-key attribute lookups (Allow Duplicates, Media Type Other Id, Dependency Description, etc.) - 10 compact-spec attributes removed as confirmed cruft (no backing field anywhere in the live Egeria type system) Every fix verified live against qs-view-server with throwaway elements, fetched back and confirmed, then deleted. Full root-cause writeups for each issue are in PYEGERIA_ISSUES.md (ISSUE-97 through ISSUE-106). Signed-off-by: Dan Wolfson --- PYEGERIA_ISSUES.md | 826 ++++++++++++- .../commands_actor_manager_compact.json | 80 +- .../commands_data_designer.json | 2 +- .../commands_digital_products_compact.json | 60 - .../commands_feedback_compact.json | 81 +- .../commands_governance_officer_compact.json | 34 +- .../commands_project_compact.json | 61 +- .../commands_solution_architect_compact.json | 40 - md_processing/data/generated_format_sets.json | 1024 ----------------- .../md_processing_utils/common_md_utils.py | 39 +- .../v2/collection_manager_processor.py | 30 +- md_processing/v2/data_designer.py | 137 ++- md_processing/v2/embedded_process.py | 6 + md_processing/v2/feedback.py | 6 +- md_processing/v2/glossary.py | 3 +- md_processing/v2/governance.py | 41 +- md_processing/v2/project.py | 5 + md_processing/v2/report.py | 2 + md_processing/v2/saved_query.py | 2 + md_processing/v2/solution_architect.py | 42 +- pyegeria/models/models.py | 14 +- pyegeria/omvs/collection_manager.py | 2 + pyegeria/omvs/my_profile.py | 7 +- pyegeria/view/base_report_formats.py | 40 +- .../advanced/Actor Manager/Create_ToDo.md | 16 - .../Data Designer/Create_Data_Grain.md | 2 +- .../Create_Digital_Product.md | 16 - .../Create_Digital_Subscription.md | 8 - .../Feedback/Create_Activity_Entry.md | 8 - .../advanced/Feedback/Create_Blog_Entry.md | 8 - .../advanced/Feedback/Create_Journal_Entry.md | 8 - .../advanced/Feedback/Create_Note.md | 16 - .../advanced/Feedback/Create_Review.md | 16 - .../Link_Agreement_Terms_and_Conditions.md | 102 +- .../advanced/Projects/Create_Meeting.md | 16 - .../Create_Solution_Role.md | 18 - .../basic/Actor Manager/Create_ToDo.md | 16 - .../basic/Data Designer/Create_Data_Grain.md | 2 +- .../Create_Digital_Product.md | 16 - .../Create_Digital_Subscription.md | 8 - .../basic/Feedback/Create_Activity_Entry.md | 8 - .../basic/Feedback/Create_Blog_Entry.md | 8 - .../basic/Feedback/Create_Journal_Entry.md | 8 - .../templates/basic/Feedback/Create_Note.md | 16 - .../templates/basic/Feedback/Create_Review.md | 16 - .../Link_Agreement_Terms_and_Conditions.md | 50 +- .../basic/Projects/Create_Meeting.md | 16 - .../Create_Solution_Role.md | 18 - .../dr_egeria_attribute_consumption_audit.py | 301 +++++ 49 files changed, 1656 insertions(+), 1645 deletions(-) create mode 100644 scripts/dr_egeria_attribute_consumption_audit.py diff --git a/PYEGERIA_ISSUES.md b/PYEGERIA_ISSUES.md index 1384146f..94538672 100644 --- a/PYEGERIA_ISSUES.md +++ b/PYEGERIA_ISSUES.md @@ -143,6 +143,66 @@ enough to track there too). --- +### ISSUE-102: `MemberDataField.minCardinality` silently persists as `maxCardinality`'s value regardless of what's actually sent — server-side, confirmed via a raw request bypassing every pyegeria/Dr.Egeria layer + +**Layer:** Egeria Server (repository/relationship-property persistence) · **Status:** open · **Found:** 2026-09-17, live-verifying a Dr.Egeria fix for `Position`/`Minimum Cardinality`/`Maximum Cardinality` on the field↔structure `MemberDataField` relationship (`qs-view-server`/`qs-metadata-store`, versionName `6.2-SNAPSHOT`). + +Confirmed with the type system's own definition +(`ValidMetadataManager._async_get_all_relationship_defs()`, filtered to +`MemberDataField`) that the three real attributes are `position`, +`minCardinality`, `maxCardinality` — all plain `int`, `AT_MOST_ONE` +cardinality, no documented interdependency between `minCardinality` and +`maxCardinality`. + +**Repro (isolated with a raw SDK call — no Dr.Egeria markdown, no pyegeria +body-construction logic in the path beyond `EgeriaTech.data_designer`):** +```python +link_body = { + "class": "NewRelationshipRequestBody", + "properties": { + "class": "MemberDataFieldProperties", + "position": 3, + "minCardinality": 1, + "maxCardinality": 5, + }, +} +await client.data_designer._async_link_member_data_field(struct_guid, field_guid, link_body) +# fetch the relationship back: +# position: 3 -- correct, matches what was sent +# minCardinality: 5 -- WRONG, silently coerced to maxCardinality's value (5), not the sent 1 +# maxCardinality: 5 -- correct +``` +`position` round-trips correctly, ruling out a client-side body-construction +bug (the exact same request dict's `position` key is honored, its +`minCardinality` key is not). No error, warning, or validation failure is +returned — the create call reports success and returns a real relationship +GUID; the wrong value is simply what gets stored. + +**Also worth flagging separately, lower confidence:** the +`_async_link_member_data_field` SDK method's own docstring sample body +(`pyegeria/omvs/data_designer.py` ~line 2286) shows `dataFieldPosition` as +the position field's name — that's wrong per the same live type-system +query (the real name is `position`); not filed as its own issue since it's +a pyegeria-side docstring fix, not an Egeria server issue, but noted here +since it was found in the same investigation and would otherwise cause a +second, harder-to-diagnose silent-drop bug for the next person who trusts +that docstring. + +**Ask:** confirm whether `minCardinality` defaulting to `maxCardinality` +when both are supplied is intentional server-side business logic (e.g. a +"min cannot exceed max, so raise min to max" normalization applied even +when min is explicitly below max and both are valid on their own) or a +genuine persistence bug; if intentional, it isn't reflected anywhere in the +`MemberDataField` relationship def's own attribute descriptions. + +**Dr.Egeria-side impact:** `Create Data Field`'s `Minimum Cardinality` +attribute is parsed and sent correctly (see `PYEGERIA_ISSUES.md` ISSUE-101) +but its stored value cannot be trusted independently of `Maximum +Cardinality` until this is resolved server-side — nothing further is +fixable in this repo for that specific symptom. + +--- + ### ISSUE-95: No catalog template registered for the "Apache Kafka Server" technology type — `Create Kafka Server Element` (Asset Maker) fails with a 400 on `qs-view-server` **Layer:** Egeria Server (deployment/archive content) · **Status:** open, being investigated by the user (2026-09-11) · **Found:** 2026-09-11, live-verifying the new Asset Maker Dr.Egeria family (#354) @@ -184,7 +244,7 @@ re-prompting the user or caching a password, which is what a bearer token exists start and applied when a token is issued; optionally a refresh operation that returns a new token for a valid unexpired one. Full draft issue text: trellis session scratch `egeria-issue-token-lifetime.md`. -### ISSUE-90: `qs-engine-host` retries `startMissedEngineActions` forever when one incomplete engine action's anchor is unreadable by the engine-host user +### ISSUE-90: [fixed?] `qs-engine-host` retries `startMissedEngineActions` forever when one incomplete engine action's anchor is unreadable by the engine-host user **Layer:** Egeria Server (possibly quickstart content) · **Status:** open · **Found:** 2026-09-04 (trevor fresh quickstart) @@ -1739,6 +1799,770 @@ Nothing else in RE is waiting on it. ## Fixed / Resolved +### ISSUE-106: `InitialClassifications`'s `model_serializer` popped the wrong dict key (`other_props` instead of the aliased `otherProps`) — every classification property beyond `class` was silently dropped on every `initialClassifications` call across the whole SDK + +**Status:** fixed 2026-09-18 (pyegeria — `pyegeria/models/models.py`), +verified with an isolated Pydantic round-trip test and live against +`qs-view-server`. Found while live-verifying the ISSUE-105 Glossary +classification fix below — `Taxonomy`/`CanonicalVocabulary` classifications +were being applied correctly (conditionally, per the ISSUE-105 fix) but +`organizingPrinciple`/`scope` never persisted despite being read and set +correctly on the Python side. + +**Root cause:** `InitialClassifications.capture_other_props()` (a +`model_validator`) correctly captures any extra properties beyond `class` +into a Python-side `other_props` field. Its paired +`serialize_model()` (`model_serializer(mode="wrap")`) is supposed to +flatten `other_props` back onto the output dict before sending — but it +does `result.pop("other_props", None)`, the Python field name. Every real +call site in this codebase dumps with `by_alias=True` (confirmed: +`_async_new_relationship_request`, `_async_create_element_body_request`, +etc. all do), and `PyegeriaModel`'s `alias_generator=to_camel_case` means +the serializer's own `handler(self)` call has *already* aliased the field +to `otherProps` by the time `serialize_model` runs — so the `pop("other_props")` +never matched anything, and the extra properties stayed nested under a +stray `otherProps` key the real Egeria DTO doesn't declare, silently +dropped server-side (no error — same "declared but not on model" silent-drop +shape as ISSUE-62, but at the serializer layer instead of the field-declaration +layer). + +**Scope: every caller of `initialClassifications` with more than a bare +`{"class": ...}`, across the whole SDK, not just Glossary.** Confirmed by +isolated test: +```python +from pyegeria.models.models import NewElementRequestBody +body = {"class": "NewElementRequestBody", "isOwnAnchor": True, + "properties": {"class": "GlossaryProperties", "displayName": "x", "qualifiedName": "x"}, + "initialClassifications": { + "Taxonomy": {"class": "TaxonomyProperties", "organizingPrinciple": "X"}, + }} +NewElementRequestBody.model_validate(body).model_dump_json(by_alias=True) +# before fix: {"Taxonomy": {"class": "TaxonomyProperties", "otherProps": {"organizingPrinciple": "X"}}} +# after fix: {"Taxonomy": {"class": "TaxonomyProperties", "organizingPrinciple": "X"}} +``` + +**Fix:** `serialize_model` now pops either key — +`result.pop("otherProps", None) or result.pop("other_props", None)` — +covering both the aliased (real-world) and unaliased (defensive) cases. + +**Verified live:** re-ran the Glossary classification test from ISSUE-105 +after this fix — `organizingPrinciple`/`scope` both persisted correctly +where they previously silently vanished with the model bug still in place. +`pytest tests/micro-tests -m unit`: no regressions from this shared-model +change. + +**Found, not fixed — adjacent, separate bug, same class as ISSUE-62:** +while cleaning up throwaway test elements for this fix, `_async_delete_collection` +(and likely other `_async_delete_*` wrappers with the same shape) silently +ignores its own `cascade` parameter whenever it's called with a body dict +already present — `validate_delete_element_request()`'s `cascade_delete` +argument is only honored in the `else` branch (body not provided at all); +the `isinstance(body, dict)` branch validates the dict as-is and never +merges `cascade_delete` into it. Several `_async_delete_*` methods +construct a dict body themselves before calling the shared +`_async_delete_element_request` helper (e.g. `CollectionManager._async_delete_collection` +does `body = {"class": "DeleteElementRequestBody"}` when its own `body` arg +is `None`), so `cascade=True` passed to *those* wrappers is silently +ignored too — confirmed live: `_async_delete_collection(guid, cascade=True)` +failed with "not permitted, still has a dependent element" even with +`cascade=True` explicitly passed. Workaround used for cleanup: pass an +explicit `body={"class": "DeleteElementRequestBody", "cascadeDelete": True}` +dict directly. Not fixed here — flagging for a dedicated pass across every +`_async_delete_*` wrapper with this shape, same audit ISSUE-62 should have +covered but evidently didn't catch this specific code path. + +--- + +### ISSUE-105: "Cluster B" — 8 real fixes (casing/phantom-key bugs, missing fields, an unwired relationship, a scope-narrower-than-declared field) plus 6 compact-spec attributes removed as confirmed cruft, plus an active Glossary-classification bug found along the way + +**Status:** fixed 2026-09-18 (Dr.Egeria/pyegeria — `md_processing/v2/glossary.py`, +`md_processing/v2/feedback.py`, `md_processing/v2/data_designer.py`, +`md_processing/v2/embedded_process.py`, `md_processing/v2/report.py`, +`md_processing/v2/saved_query.py`, `md_processing/v2/solution_architect.py`, +`md_processing/v2/collection_manager_processor.py`, +`md_processing/v2/project.py`, `pyegeria/omvs/my_profile.py`, plus 5 +compact-spec family files), verified live with a combined throwaway-element +test. Continuing the ISSUE-99/100/101/103/104 follow-up list — "Cluster B", +the lower-confidence remainder of the original attribute-consumption audit +(confirmed absent only by grep, not read in full context). Every item was +independently re-confirmed real-vs-cruft via the live type system before +touching anything, per the discipline ISSUE-103 established. + +**Real fixes:** +- **`Example`** (`Create Glossary Term`, `Create Question`) — real field + `examples` (plural) on `GlossaryTermProperties`; `TermProcessor` read the + phantom key `'Examples'` (plural — spec attribute is singular `Example`); + `QuestionProcessor` never referenced it at all. Both fixed. +- **`Deployed Implementation Type`/`Resource Name`** (`Create Embedded + Process`, `Create Report`, `Create Saved Query`) — real `AssetProperties` + fields (confirmed `.http`), inherited via each command's `Asset` bundle. + All three processors only built their own type-specific extras, never + these two shared-but-inherited fields. Added to all three. +- **`Default Media Usage Other Id`/`Media Type Other Id`** (`Create Related + Media`, plus a bonus find in the adjacent `Cited Document` block) — + case-mismatched phantom keys (`...Other ID` vs spec's `...Other Id`), 3 + sites fixed. +- **`Grain Statement`/`Granularity Basis`/`Interval`** (`Create Data + Grain`) — real `DataGrain` own-attributes, confirmed via the live type + system; `DataGrainProcessor` only called the fully generic + `set_element_prop_body()`. Added all 3. **Also caught and fixed while + verifying live:** `Interval`'s compact-spec `style` was `Simple Float`, + but the real server-side type is `long` — sending `1.0` failed with + `InvalidFormatException`. Corrected style to `Simple Int`. +- **`Role List`** (`Create Solution Blueprint`) — real, unwired + relationship, same shape as the already-fixed `In Data Structure` + (ISSUE-97). `BlueprintProcessor` had no sync of any kind for it. Added a + `_sync_role_list` method mirroring the existing `_sync_components` + pattern (plain `CollectionMembership`, same relationship the standalone + `Link Actor to Blueprint` command already uses). +- **`Objective`** (`Create Meeting` only, per explicit decision — NOT + ToDo/Review/Note, despite the compact spec's shared description implying + otherwise) — real `MeetingProperties` field, confirmed live; absent from + `ToDo`/`Review`/`Action`. `ProjectProcessor`'s Meeting branch calls + `MyProfile._async_create_meeting()`, which had no `objective` parameter + at all — added one (both to the SDK method and the processor call site). + +**Active bug, not just a missing field — `Create Glossary`'s +`Is Canonical`/`Is Taxonomy`/`Canonical Scope`/`Organizing Principle`:** +`CollectionManagerProcessor` was unconditionally applying **both** +`Taxonomy` and `CanonicalVocabulary` classifications to every single +Glossary ever created, regardless of what the user set (or didn't set) — +already-running wrong behavior in production, not a dormant gap. Found: +`md_processing/v2/glossary.py`'s `GlossaryProcessor` already had the +*correct* conditional logic written — but `GlossaryProcessor` is **never +registered** in `setup_dispatcher()` (`Glossary` auto-routes via +`COLLECTION_SUBTYPES` to `CollectionManagerProcessor` instead) — fully dead +code, confirmed by grepping the entire dispatcher registration. Fixed in +the code path that actually runs: classifications now applied only when +their respective `Is Canonical`/`Is Taxonomy` flag is true (both default +`False` per the compact spec, matched here), with `Canonical Scope`→`scope` +and `Organizing Principle`→`organizingPrinciple` wired in. **This fix +surfaced ISSUE-106** (below) — the classification-conditional logic was +right, but the properties still didn't persist until that separate, +deeper pyegeria bug was found and fixed too. + +**Confirmed cruft, removed from the compact spec (user decision) — 6 +attributes, cross-file (the `compact-attr-global-namespace` global-namespace +pattern applied to the *removal* side too: some of these existed +identically in multiple family files and needed cleanup in each):** +- `Expected Behavior` (`Create Activity/Blog/Journal Entry`) — zero own + attributes on `Notification`/`JournalEntry`/`ActivityEntry`/`BlogEntry` + in the live type system. +- `Due Time`/`Requested Start Time` (`Meeting`/`ToDo`/`Review`/`Note`) — the + `.http` "confirmation" that looked real turned out to be a copy-paste + artifact (the same oversized field block repeated under 5 unrelated + class headers, including `NotificationProperties`, which the live type + system separately confirms has zero own fields). `MyProfile`'s own SDK + methods have no parameter or override mechanism for either, confirming + no real path ever existed. +- `Role Identifier`/`Role Type` (`Create Solution Role`) — zero own + attributes on `SolutionActorRole` or its super `ActorRole`; `Role + Type`'s own description referenced an unrelated real type + (`GovernanceRole`), reading as confused/stale spec authoring. +- `Subscription Level` (`Create Digital Subscription`) — redundant + duplicate of the already-correctly-wired `Support Level` + (`supportLevel` on `DigitalSubscriptionProperties`, confirmed `.http`); + no `subscriptionLevel` field exists anywhere in the ground truth. + +**Bundle/attribute removal mechanics:** `Person Action Base` (shared +byte-for-byte across `commands_feedback_compact`, `commands_project_compact`, +`commands_actor_manager_compact`) needed `Due Time`/`Requested Start Time` +stripped from all 3 copies; doing so exposed that 2 of the 3 files were +each already missing a *different* pre-existing shared attribute locally +(`Priority` absent from feedback/actor_manager, `Situation` absent from +project/actor_manager) despite their bundles referencing them successfully +via cross-file resolution at runtime — copied the canonical definitions +into the files missing them (matching the `compact-attr-global-namespace` +"always copy, never reinvent" rule) before the bundle `PUT` would validate. +Not something introduced by this session; a latent inconsistency this +cleanup pass happened to surface and correct as a side effect. + +**Verified live:** one combined throwaway-element test file (Glossary + +Term + Question + Embedded Process + Related Media + Data Grain + Solution +Role + Solution Blueprint with `Role List` + Meeting with `Objective`). +First `--process` run: 1 failure (`Interval`'s float-vs-long style bug, +found and fixed as above), everything else succeeded. Re-ran clean after +the style fix. Fetched every created element back individually and +confirmed: `examples` on both Term and Question; `Taxonomy`/ +`CanonicalVocabulary` classifications present conditionally with +`organizingPrinciple`/`scope` populated (after the ISSUE-106 fix); +`grainStatement`/`granularityBasis`/`interval` on the Data Grain; +`objective` on the Meeting; the `SolutionActorRole`↔`SolutionBlueprint` +membership from `Role List` (confirmed indirectly — a delete of the +blueprint correctly failed with "still has a dependent SolutionActorRole +element" until the role was removed first). All throwaway elements +deleted afterward. `scripts/dr_egeria_attribute_consumption_audit.py` +re-run scoped to every touched command: all 0 findings. +`pytest tests/micro-tests -m unit`: no regressions. + +**Found, not fixed — a second unrelated dead-code discovery, same shape as +ISSUE-104's "Associated Group":** `Classify Glossary as Canonical`/ +`Classify Glossary as Taxonomy` are declared commands with no registered +processor (surfaced by the audit script's own "unrouted" reporting) — may +be an intended alternative, post-creation classification mechanism that +was never wired up, or may be superseded by this fix's create-time +handling. Not investigated further; flagging for whoever next touches the +Glossary family. + +--- + +### ISSUE-104: "Cluster A" — 4 relationship-property gaps, a phantom-key relationship-endpoint bug, a genuinely-missing hierarchy relationship, and one Link command with no implementation at all + +**Status:** fixed 2026-09-18 (Dr.Egeria/pyegeria — `md_processing/md_processing_utils/common_md_utils.py`, +`md_processing/v2/data_designer.py`, `md_processing/v2/governance.py`, +`pyegeria/models/models.py`), verified live against `qs-view-server` with a +single combined throwaway-element test covering all 7 items. Continuing the +ISSUE-99/100/101/103 follow-up list, picked as "Cluster A" — the +higher-confidence half of what remained, per a live type-system check on +each item before touching code (same discipline ISSUE-103 established). + +**1-3. Three relationship-property gaps, one shared fix.** `Zone +Membership`/`Last Notification`/`Activity Status` (`Link Notification +Subscriber`), `Assignment Type` (`Link Assignment Scope`), and `Expected +Time Allocation Percent` (`Link Person/Team Role Appointment`) were all +declared real by the live type system (`NotificationSubscriber`/ +`AssignmentScope`/`PersonRoleAppointment`/`TeamRoleAppointment` relationship +defs) but never read — all three routes went through the fully generic +`set_rel_prop_body()` in `common_md_utils.py`, which only builds +`description`/`label`/`typeName`/`effectiveFrom`/`effectiveTo`/ +`extendedProperties`. Fixed with one shared edit: `set_rel_prop_body` now +branches on its own computed `prop_name` (the real Egeria type name) to add +each type's own fields, mirroring the `update_gov_body_for_type`/ +`set_collection_manager_body` pattern already used for element bodies. +Also added the missing `last_notification` field to pyegeria's existing +`NotificationSubscriberProperties` Pydantic model (not a live double-gap +today, since this write path uses raw dicts, but worth fixing for +consistency/future use). + +**4. `In Data Field` — same shape as the already-fixed `In Data Structure`, +plus a second bug found while fixing it.** Real (`NestedDataField` +relationship, confirmed via an existing code comment). Also found: +`DataFieldProcessor._sync_all_rels()` read a key, `'Parent Data Field'`, +that doesn't exist anywhere in the compact spec at all — a phantom-key bug +(ISSUE-100 `Allow Duplicates` shape) in code that ISSUE-97/101's fixes to +this exact method had already touched twice this week and missed. Renamed +to `'In Data Field'` with the singular-`guid` fallback (`max_cardinality: 1`, +same pattern as the sibling fixes). + +**5-6. `In Data Value Specification`/`Specializes Data Value Specification` +— genuinely missing, user confirmed both are the same relationship.** Both +attributes read as near-synonyms in the compact spec; user decided to treat +them as aliases of the one real `DataValueHierarchy` relationship (the same +one `Link Data Value Composition` already uses via +`_async_link_specialized_data_value_specification`). Neither was wired at +all on `Create Data Class`, `Create Data Grain`, or `Create Data Value +Specification` — none of the three processors synced any relationship for +either attribute. Added a `_sync_value_spec_parent`-style sync to all three +(as a new 5th section in `DataClassProcessor`'s existing `_sync_all_rels`; +as new standalone helper methods on `DataGrainProcessor` and +`DataValueSpecificationProcessor`, which previously had *no* relationship +sync of any kind). + +**7. `Link Associated List` — not a field-mapping bug, a completely +unimplemented command.** `governance.py`'s `endpoint_map` had no entry for +`"Associated List"` at all — every invocation raised +`NotImplementedError`. No dedicated SDK method exists for +`AssociatedSecurityList` (`SecurityAccessControl↔SecurityList`, confirmed +real via the live type system), and no `.http` worked example exists +either. Found and reused the actually-correct generic mechanism instead of +writing a new bespoke SDK method: `MetadataExpert._async_create_related_elements`/ +`_async_detach_related_elements_in_store` (wrapping the generic +`createRelatedElementsInStore`/`.../detach-all` endpoints, already proven in +production by `AsyncBaseCommandProcessor._sync_parent_relationship` for the +same "no bespoke wrapper exists" reason). **Explicitly did not** route this +through the neighboring `_async_link_peer_definitions` call used for +`Associated Group`/`Regulation Certification Type` — that method's own +docstring restricts it to `GovernanceDriverLink`/`GovernancePolicyLink`/ +`GovernanceControlLink`, and `SecurityList` is not a governance-definition +peer of `SecurityAccessControl`. One body-shape gotcha caught before +shipping: the generic detach call validates against +`OpenMetadataDeleteRequestBody` (strict `class` literal), not the +`DeleteRelationshipRequestBody` shape every other branch in this method +builds — had to construct that request body separately rather than reusing +the shared one. + +**Found, not fixed — flagged as pre-existing dead code, adjacent to item +7:** `governance.py`'s `"Associated Group"` handling (both the `endpoint_map` +entry and the `elif object_type in {"Associated Group", ...}` branches, in +both the Create and Detach paths) references a relationship type, +`AssociatedSecurityGroup`, that does not exist anywhere in the live type +system, and no compact-spec command anywhere actually has +`object_type == "Associated Group"` — fully unreachable, apparently a stale +leftover. Left as-is (out of scope for this fix); worth a follow-up cleanup +pass. + +**Verified live:** one combined throwaway-element test file exercising all +7 fixes in a single `--process` run (Notification Type + subscriber +Collection + Security Access Control + Security List + Person + Person Role ++ parent/child Data Fields + parent Data Value Specification + child Data +Class), 0 `FAILURE` rows. Fetched every created element back individually +and confirmed: `activityStatus`/`zoneMembership`/`lastNotification` on the +`NotificationSubscriber` relationship; `expectedTimeAllocationPercent` on +`PersonRoleAppointment`; `assignmentType` on `AssignmentScope`; the real +`NestedDataField` relationship linking child→parent Data Field; the real +`DataValueHierarchy` relationship linking Data Class→Data Value +Specification; and the real `AssociatedSecurityList` relationship linking +Security Access Control→Security List with `operationName` set. All +throwaway elements deleted afterward. +`scripts/dr_egeria_attribute_consumption_audit.py` re-run scoped to every +touched command: all 0 findings (Data Grain's separate, untouched +`Grain Statement`/`Granularity Basis`/`Interval` gap still correctly +appears, confirming the audit still works). `pytest tests/micro-tests -m +unit`: no regressions. + +**Still open from the ISSUE-99/100/101 list:** `Operation Name` is now +fixed (covered above as item 7's `Associated List`). Still open: the +longer single-command tail (`Expected Behavior`, `Example`, `Due +Time`/`Objective`/`Requested Start Time`, `Canonical Scope`/`Is +Canonical`/`Is Taxonomy`, `Subscription Level`, `Deployed Implementation +Type`/`Resource Name`, `Default Media Usage Other Id`/`Media Type Other +Id`, `Role Identifier`/`Role Type`, `Role List`, `Grain +Statement`/`Granularity Basis`/`Interval`) — "Cluster B" in earlier +discussion, lower confidence (grep-confirmed absence only, not read in full +context), likely to share root causes once grouped rather than being 15+ +independent bugs. + +--- + +### ISSUE-103: `Link Agreement Terms and Conditions`'s compact spec declared the wrong relationship type entirely (`CollectionMembership` instead of `AgreementItem`), and the code that already implemented it correctly had its own phantom-key bug + +**Status:** fixed 2026-09-17 (Dr.Egeria — compact spec via the Spec Editor +API, `md_processing/v2/governance.py`), verified live against +`qs-view-server` (`Create Agreement` → `Create Terms and Conditions` → +`Link Agreement Terms and Conditions`, fetched back, confirmed the real +`AgreementItem` relationship with all 4 properties persisted, then deleted). +Resolves the "investigated, explicitly not fixed" item from ISSUE-101. + +**Root cause:** the compact spec (`OM_TYPE: CollectionMembership`, bundle +`Collection Membership`) and the processor code +(`GovernanceLinkProcessor`'s `elif object_type == "Agreement T&C":` branch, +building `AgreementItemProperties` and calling `_async_link_agreement_item`) +disagreed about which real Egeria relationship type this command uses. +Confirmed via the live type system (`ValidMetadataManager._async_get_all_relationship_defs()`, +filtered to names containing "Agreement"/"Term") that `AgreementItem` is a +real, distinct relationship (`endDef1: Agreement`, `endDef2: Referenceable`, +fields `agreementItemId`/`agreementStart`/`agreementEnd`/`entitlements`/ +`restrictions`/`obligations`/`usageMeasurements`) with no `membershipType` +field at all — the code was right, the spec was wrong. User confirmed +`linkAgreementItem` was the intended relationship before this was +investigated further. + +**Fix — compact spec:** changed `OM_TYPE` to `AgreementItem` and pointed the +command at a new bundle `Agreement T&C Base` +(`Agreement Item Id`/`Agreement Start Date`/`Agreement End Date`/`Usage +Measurements`) — deliberately narrower than the sibling `Link Agreement +Item` command's own `Agreement Item` bundle, since `Entitlements`/ +`Obligations`/`Restrictions` already live on the linked `Terms and +Conditions` element itself (its own dedicated bundle), not on this +relationship instance, and reusing the sibling's full bundle would have +forced every user to also fill in a redundant `Item Name` (duplicating +`Terms & Conditions Id`, `min_cardinality: 1`) for no reason — confirmed by +trying the wholesale-reuse approach first and hitting exactly that +validation error live. + +**Near-miss caught and fixed, not shipped:** the first attempt created a +new bundle also named `Agreement Item` in the Governance Officer family's +own file. Bundle names are merged globally across every compact JSON file +the same way attribute names are (`compact_loader.py`'s `all_bundles`, +last-file-alphabetically-wins) — undocumented anywhere until now. Digital +Product Manager's file (`digital_products` < `governance_officer` +alphabetically) already had a real, working `Agreement Item` bundle used by +`Link Agreement Item`; the new one would have silently replaced it at the +next `refresh_specs`, corrupting that command's attribute set. Caught only +because `Link Agreement Item` was noticed by chance while researching this +fix — not by any tool, since the Spec Editor's structural validation and +`attribute_sharing` reporting are both file-scoped and don't cover this. +Fixed by renaming to the distinct `Agreement T&C Base` instead. Documented +in the `compact-attr-global-namespace` memory and the +`dr-egeria-command-sync` skill's Step 1, both updated to cover bundles, not +just attributes. + +**Fix — code:** `GovernanceLinkProcessor`'s `Agreement T&C` branch read +`attributes.get("Start Date", ...)`/`attributes.get("End Date", ...)` — a +phantom-key mismatch (this command's bundle, correctly, never provided those +generic names) found only because properly wiring the bundle exposed it. +The sibling `CollectionLinkProcessor`'s `Link Agreement Item` branch already +correctly used `Agreement Start Date`/`Agreement End Date` for the identical +`agreementStart`/`agreementEnd` fields — renamed to match. + +**Verified live:** created a throwaway `Agreement`, `Terms and Conditions`, +and linked them via `Link Agreement Terms and Conditions` with `Agreement +Item Id`/`Agreement Start Date`/`Agreement End Date`/`Usage Measurements` +set. Fetched the `Agreement` back and confirmed a real `AgreementItem` +relationship (not `CollectionMembership`) with all 4 values persisted +exactly as sent, linking to the correct `TermsAndConditions` element. Both +`commands_governance_officer_compact` and `commands_digital_products_compact` +re-validated clean (`structural_ok: true`, no new warnings) after cleanup of +the near-miss. `pytest tests/micro-tests -m unit`: no regressions. + +--- + +### ISSUE-101: `Is Case Sensitive` never mapped, field↔structure link sent the wrong wire property name for `Position`, and `Membership Type`/`Dependency Description` were phantom-key or unmapped on 5 relationship-property bodies + +**Status:** fixed 2026-09-17 (Dr.Egeria — `md_processing/v2/data_designer.py`, +`md_processing/v2/collection_manager_processor.py`, +`md_processing/v2/solution_architect.py`), verified live against +`qs-view-server` with throwaway elements, including one raw-SDK isolation +test that caught a second bug this fix's own first attempt introduced. +Continuing the ISSUE-99/100 follow-up list. + +**`Is Case Sensitive`** (Create Data Class) — confirmed by the user to be a +real `DataClass` field. Added `"isCaseSensitive": attributes.get('Is Case +Sensitive', {}).get('value')` to `DataClassProcessor`'s properties dict. +Verified live: `True` persisted correctly. + +**`Position`/`Minimum Cardinality`/`Maximum Cardinality`** (declared on +`Create Data Field`, meant for the field↔structure `MemberDataField` +relationship) — **the real fix site was not `LinkFieldToStructureProcessor`** +(the standalone `Link Data Field to Data Structure` command has no +cardinality attributes at all) but `DataFieldProcessor._sync_all_rels()`, +whose `add` lambda for the Data Structures sync called +`_async_link_member_data_field(ds, guid, None)` — body always `None`. Fixed +by threading `attributes` through both call sites into `_sync_all_rels` and +building a real `MemberDataFieldProperties` body. + +**Caught during live verification, not before:** the first attempt used +`"dataFieldPosition"` as the wire key, taken from the SDK method's own +docstring sample body (`data_designer.py` line ~2286) — that docstring is +**wrong**. Live verification showed `position` silently staying `0` (server +default) while `minCardinality`/`maxCardinality` round-tripped, which didn't +match "attribute never sent" (that would leave all three at default). +Queried the live type system directly (`ValidMetadataManager._async_get_all_relationship_defs()`, +filtered to `MemberDataField`) — the real, only attribute name is `position`, +not `dataFieldPosition`. Fixed the key; a fresh throwaway round-trip then +showed `position: 3` (sent value) correctly persisted. **The SDK docstring +itself is still wrong** (not fixed here — out of scope for this pass, but a +real, confirmed-live ground-truth error worth a follow-up). + +**Not a bug, a genuine Egeria server quirk — do not attempt to fix +client-side:** even with the correct key, `minCardinality` consistently +persists as `maxCardinality`'s value regardless of what's actually sent. +Isolated with a raw SDK call bypassing Dr.Egeria entirely +(`_async_link_member_data_field` called directly with +`{"position": 3, "minCardinality": 1, "maxCardinality": 5}`) — server still +returned `minCardinality: 5`. Confirmed server-side, not a pyegeria or +Dr.Egeria client bug; noting here so nobody re-investigates the client code +for this specific symptom. + +**`Membership Type`** — user confirmed this is a real `CollectionMembership` +relationship property (not spec cruft, despite zero hits across every +`.http` ground-truth file — those worked examples are evidently non-exhaustive). +Added to both real fix sites: +- `CollectionLinkProcessor`'s `Add Member to Collection` branch + (`collection_manager_processor.py`). +- `SolutionLinkProcessor`'s generic `om_type == "CollectionMembership"` + branch (`solution_architect.py`) — one fix covers all 4 affected commands + (`Link Actor to Blueprint`, `Link Blueprint Child`, `Link Information + Supply Chain Child`, `Link Solution Component to Blueprint`), confirmed by + checking each command's `OM_TYPE` via the Spec Editor API before editing. + +Verified live (Dr.Egeria pipeline, not raw SDK, to also confirm the parser/ +processor wiring): `membershipType: 'TestMembershipType2'` persisted +correctly on an `Add Member to Collection` command. + +**Investigated, explicitly not fixed — a different, deeper bug:** +`Link Agreement Terms and Conditions` ("T&C") was also on the `Membership +Type` list, but its compact spec (`OM_TYPE: CollectionMembership`, bundle +`Collection Membership`) does not match what the processor code actually +does — `GovernanceLinkProcessor`'s `elif object_type == "Agreement T&C":` +branch builds an entirely different `AgreementItemProperties` body and calls +`_async_link_agreement_item`, which has no `membershipType` field at all. +This is a spec/code type mismatch, not a missing-field gap — adding +`membershipType` to the wrong property class would be a no-op at best. Left +untouched; needs someone to determine whether the compact spec's `OM_TYPE` +is stale or the code's relationship-type choice is wrong, before any fix. + +**`Dependency Description`** (`Link Product Dependency`) — phantom-key bug, +same shape as `Allow Duplicates` in ISSUE-100: +`CollectionLinkProcessor`'s `Product Dependency` branch read +`attributes.get('Description', ...)`, but this command's `custom_attributes` +are only `["Dependency Description", "Digital Product 1", "Digital Product +2"]` — no generic `Description` attribute exists on it at all. Renamed the +key. **Adjacent phantom key found, not fixed:** the same block also reads +`attributes.get('Label', ...)` — `Label` isn't in this command's +`custom_attributes` either, so it's always `None`; harmless (an optional +field silently unset, not a required one silently dropped) but flagged for +whoever next touches this block. + +**Verification:** all four confirmed fixes re-checked with +`scripts/dr_egeria_attribute_consumption_audit.py` scoped per command — +`Is Case Sensitive` and `Position`/`Minimum Cardinality`/`Maximum +Cardinality` no longer appear on `Data Class`/`Data Field`'s finding lists; +`Add Member to Collection`, `Link Actor to Blueprint`, `Link Product +Dependency` all show 0 findings. `pytest tests/micro-tests -m unit`: no +regressions. + +**Still open from the ISSUE-99/100 list:** `Link Agreement Terms and +Conditions`'s spec/code mismatch fixed separately, see ISSUE-103. Still +open: `Operation Name`/`Last Notification`/`Assignment Type`/`Expected Time +Allocation Percent` on other Link commands, and the longer single-command +tail (`Expected Behavior`, `Example`, `Due Time`/`Objective`/`Requested +Start Time`, `Canonical Scope`/`Is Canonical`/`Is Taxonomy`, `Subscription +Level`, `Deployed Implementation Type`/`Resource Name`, `Default Media Usage +Other Id`/`Media Type Other Id`, `Role Identifier`/`Role Type`, `Role List`, +`In Data Value Specification`/`Specializes Data Value Specification`, `In +Data Field`, `Grain Statement`/`Granularity Basis`/`Interval`). + +--- + +### ISSUE-100: `Create Data Lens`'s 9 fields were never mapped (same shape as ISSUE-71), and `Allow Duplicate Values` was either read under a phantom key or not read at all + +**Status:** fixed 2026-09-17 (Dr.Egeria — +`md_processing/md_processing_utils/common_md_utils.py`, +`md_processing/v2/data_designer.py`), verified live against +`qs-view-server` with throwaway elements. Two of the three follow-up items +from ISSUE-99's list, picked next by priority. + +**Data Lens:** `update_gov_body_for_type()` (`common_md_utils.py`, called by +every `GovernanceProcessor`-routed command) had no branch for `DataLens` — +all 9 of its compact-spec attributes (`Data Collection Start/End Time`, +`Max`/`Min Height`/`Latitude`/`Longitude`, `Scope Elements`) fell through to +the generic fallback at the end of the function, exactly the shape the +`GovernanceActionType`/`GovernanceActionProcessStep` branch immediately +above it already calls out as ISSUE-71. No dedicated Pydantic model exists +for `DataLensProperties` (it's a raw-dict body validated generically by +`_async_create_element_body_request`), so unlike ISSUE-98/99 there was no +second model-level gap to fix. Field names confirmed against both the +`GovernanceOfficer._async_create_data_lens`-style SDK method's own docstring +sample body and the Spec Editor API. **Note:** the SDK docstring also shows +`dataValidityStartTime`/`dataValidityEndTime`/`dataCoverageStartTime`/ +`dataCoverageEndTime` as real wire fields with no corresponding compact-spec +attribute at all — out of scope for this fix, a possible future addition if +wanted, not a bug. + +**`Allow Duplicate Values` — two different bugs at two different sites, one +false lead:** +- `DataClassProcessor.apply_changes()` (`data_designer.py` ~line 504) read + `attributes.get('Allow Duplicates', ...)` — a key that does not exist + anywhere in the compact spec (real name: `Allow Duplicate Values`, on + `Data Class Base`) — always silently defaulted to `True`. Renamed the key. +- `set_data_field_body()` (`common_md_utils.py`) never referenced the + attribute at all, despite `Allow Duplicate Values` being directly in + `Create Data Field`'s `custom_attributes`. Added the missing line. +- **False lead, not fixed:** the identical `'Allow Duplicates'` string also + appears in `DataValueSpecificationProcessor` (`data_designer.py` line 54). + Confirmed harmless dead code — `Create Data Value Specification`'s own + bundle doesn't declare `Allow Duplicate Values` at all, so this lookup + always returns the default regardless of the key's spelling. Left as-is; + renaming it would be cosmetic, not a fix. + +**Verified live:** created a throwaway Data Class (`Allow Duplicate Values: +false`), Data Field (`Allow Duplicate Values: false`), and Data Lens (all 6 +geo fields set), fetched all three back, confirmed +`properties.allowsDuplicateValues` was `False` (not the `True` default) on +both, and all 6 Data Lens fields (`maxHeight`/`minHeight`/`maxLatitude`/ +`minLatitude`/`maxLongitude`/`minLongitude`) persisted with their exact +values — then deleted all three. Re-ran +`scripts/dr_egeria_attribute_consumption_audit.py` scoped to each affected +command: `Data Lens` now 0 findings; `Allow Duplicate Values` no longer +appears in either `Data Class`'s or `Data Field`'s remaining finding list. +`pytest tests/micro-tests -m unit`: no regressions. + +**Still open from ISSUE-99's follow-up list** (not touched this round): +`Position`/`Minimum Cardinality`/`Maximum Cardinality` on the field↔structure +link, `Is Case Sensitive` (Data Class), the `Membership Type`/relationship- +property gaps across 6 Link commands, and the longer single-command tail — +see ISSUE-99 for the full list. + +--- + +### ISSUE-99: `Purpose` — a required attribute on ~30 Collection-family `Create` commands — was never mapped into the request body at all + +**Status:** fixed 2026-09-17 (Pyegeria/Dr.Egeria — +`md_processing/md_processing_utils/common_md_utils.py`, +`pyegeria/omvs/collection_manager.py`), verified live against +`qs-view-server` with a throwaway element. Found by +`scripts/dr_egeria_attribute_consumption_audit.py` (see below), a new +static-audit tool built in response to ISSUE-97/98 to find this whole bug +class proactively instead of one report at a time. + +**Root cause:** `set_element_prop_body()` — the base `Referenceable`-level +body builder every element type ultimately calls — never read `Purpose` at +all. `set_collection_manager_body()` (called for every `CollectionManagerProcessor`- +routed command: Collection, Data Spec, Data Dictionary, the whole Digital +Product family, Glossary, Report Type, Security Group/List/Role, Skill Set, +and ~20 more) only added Digital-Product-specific fields on top, never +`purpose`. **`Purpose` has `min_cardinality: 1` in the compact spec** — it's +presented to the user as required, they fill it in, and it was silently +discarded on every single one of these ~30 commands. Also missing from the +`CollectionProperties` Pydantic model (`pyegeria/omvs/collection_manager.py`) +— the same double-gap pattern as ISSUE-98's `Current Version`. Confirmed +`purpose` is a real wire field via `Egeria-api-collection-manager.http`'s +worked examples (appears in every `createCollection`-family sample body, +right after `authors`). + +**Scope note:** `Purpose` is also declared on `Create Solution Blueprint` +and `Create Information Supply Chain`, which use `set_element_prop_body()` +directly (not `set_collection_manager_body()`) and are **not** covered by +this fix — `purpose` does not appear anywhere in +`Egeria-api-solution-architect.http`'s ground truth, so unlike the Collection +case this looks like the same "spec cruft, no real DTO field" shape as +ISSUE-98's `Product Status`/`Product Type`, not a simple omission. Not +resolved here; flagged for the same maintainer call (map vs. remove) ISSUE-98 +got. + +**Fix:** added `purpose: str | None = None` to `CollectionProperties` (all +Collection subtypes inherit it), and +`prop_bod["purpose"] = attributes.get('Purpose', {}).get('value', None)` to +`set_collection_manager_body()`, unconditionally (applies to every subtype +routed through it, not just Digital Product). Verified live: created a +throwaway Data Specification with `### Purpose` set, fetched it back, +confirmed `properties.purpose` persisted correctly, then deleted it. +`pytest tests/micro-tests -m unit`: no regressions. + +**Also from this audit run, not yet fixed — filed for follow-up, not +speculative:** +- `Create Data Lens`'s 9 DataLens-specific fields (`Data Collection Start/End + Time`, `Max`/`Min Height`/`Latitude`/`Longitude`, `Scope Elements`) fall + through to the fully generic governance body builder — same shape as + ISSUE-98, a subtype that never got its own properties branch + (`md_processing/v2/governance.py`, `GovernanceProcessor`). +- `DataClassProcessor`/`DataFieldProcessor` (`data_designer.py` lines + ~54/504) read `attributes.get('Allow Duplicates', ...)` — that key does + not exist anywhere in the compact spec (real name: `Allow Duplicate + Values`) — always silently defaults to `True`. +- `Is Case Sensitive` (Data Class) confirmed absent from the `DataClassProperties` + body. +- `Position`/`Minimum Cardinality`/`Maximum Cardinality`, declared on + `Create Data Field`, are never sent on the actual field↔structure link — + `LinkFieldToStructureProcessor` sends a completely empty + `MemberDataFieldProperties` body, even though the live relationship + carries exactly these 3 fields as server defaults. +- `Membership Type` is declared as a relationship property on 6 different + Link commands (`Add Member to Collection`, `Link Actor to Blueprint`, + `Link Blueprint Child`, `Link Information Supply Chain Child`, + `Link Solution Component to Blueprint`, `Link Agreement Terms and + Conditions`) across 3 different processors + (`CollectionLinkProcessor`/`SolutionLinkProcessor`/`GovernanceLinkProcessor`) + and never read in any of them; same pattern for `Dependency Description` + (`Link Product Dependency`), `Operation Name` (`Link Associated List`), + `Last Notification` (`Link Notification Subscriber`), `Assignment Type` + (`Link Assignment Scope`), `Expected Time Allocation Percent` (`Link + Person/Team Role Appointment`) — all confirmed by reading the relevant + processor's relationship-properties body, not just the audit heuristic. +- A longer tail of single-command gaps (`Expected Behavior`, `Example`, + `Due Time`/`Objective`/`Requested Start Time`, `Canonical Scope`/`Is + Canonical`/`Is Taxonomy`, `Subscription Level`, `Deployed Implementation + Type`/`Resource Name`, `Default Media Usage Other Id`/`Media Type Other + Id`, `Role Identifier`/`Role Type`, `Role List`, `In Data Value + Specification`/`Specializes Data Value Specification` (likely the same + ISSUE-97 singular/plural shape), `In Data Field`, `Grain Statement`/ + `Granularity Basis`/`Interval`) confirmed absent by targeted grep but not + read in full surrounding context — one confidence tier below the items + above; see the audit script's own report for the full list. +- `Estimated Volumetrics` (`Create Information Supply Chain`) is **not** a + new finding — it cross-references the existing ISSUE-64 entry's own + follow-up note (suspected misattributed bundle field, not a simple + "never read" bug). + +**New tool, added this session:** `scripts/dr_egeria_attribute_consumption_audit.py` +— a static audit that checks, for every compact-spec command, whether its +processor actually reads each declared attribute (`UNCONSUMED`) and whether +`Reference Name`/`Reference Name List` attributes are read with the matching +`guid`/`guid_list` cardinality key (`CARDINALITY_MISMATCH`, the ISSUE-97 +shape). It's a heuristic, not a proof — see its docstring's "Known +limitations" section — and it has one confirmed class of false positive: +`SolutionLinkProcessor`'s generic `id1_key`/`id2_key` peer-link mechanism +resolves the two link-endpoint attributes dynamically from +`spec.get("custom_attributes")[0]`/`[1]`, never by literal string match, so +its ~21 `Reference Name`-style findings should be disregarded. A full run +also surfaced that `COMMAND_DEFINITIONS["Command Specifications"]` yields +some command names more than once (a few findings appear duplicated) — a +tool-side dedup bug, not a second instance of the underlying finding. + +--- + +### ISSUE-98: `Create Digital Product`'s `Product Status`/`Product Type` were spec cruft with no real DTO field, and `Current Version` was silently dropped + +**Status:** fixed 2026-09-17 (Pyegeria/Dr.Egeria — compact spec via the +Spec Editor API, `md_processing/md_processing_utils/common_md_utils.py`, +`pyegeria/omvs/collection_manager.py`), verified via `refresh_specs` + +unit tests. Reported by an external maintainer/user agent. + +**Reported symptom:** `Product Status`, `Product Type`, and `Current +Version` on `Create Digital Product` were not mapped into the request +body at all, so products carried their status in `Maturity` instead. + +**Root cause, `Current Version`:** `set_collection_manager_body()`'s +Digital Product branch built `productName`/`maturity`/`serviceLife`/ +`introductionDate`/`withdrawalDate`/`nextVersionDate` but never read +`Current Version` — a plain omission. It's also a real wire field +(`currentVersion`, confirmed in `Egeria-api-product-manager.http`'s +`createDigitalProduct` example) that was additionally missing from the +`DigitalProductProperties` Pydantic model in +`pyegeria/omvs/collection_manager.py` — a double gap per this repo's +known "declared-but-not-on-the-model = silently dropped" pattern +(see ISSUE-62). A second, dead body-builder `set_product_body()` (never +called from anywhere) had the identical gap, left as-is since it's unused. + +**Root cause, `Product Status`/`Product Type`:** unlike `Current Version`, +neither corresponds to any real field on the Egeria +`DigitalProductProperties` DTO — confirmed against the `.http` ground +truth. Real lifecycle status is set via a separate +`updateDigitalProductStatus` operation using `contentStatus`/ +`deploymentStatus`, not exposed by any Dr.Egeria command for Create/Update +Digital Product. These two attributes were spec cruft, not simply +unmapped — user confirmed removal rather than inventing a mapping. + +**Fix:** added `"currentVersion": attributes.get('Current Version', {}).get('value', None)` +to `set_collection_manager_body`'s Digital Product branch, and +`current_version: str | None = None` to `DigitalProductProperties`. +Removed `Product Status`/`Product Type` from the `Digital Product Base` +bundle and their attribute definitions from +`commands_digital_products_compact.json` via the Spec Editor's REST API +(neither was shared with another family — `attribute_sharing` was empty +for both), then ran `refresh_specs --merge-reports` to regenerate +templates/help/report specs. `validate_compact_specs`: 0 errors. Proper +status support for Digital Products (via `contentStatus`/ +`deploymentStatus`) is not implemented — no command currently calls +`updateDigitalProductStatus` — and would need a follow-up if wanted. + +--- + +### ISSUE-97: `Create Data Structure`'s `In Data Specification` and `Create Data Field`'s `In Data Structure` were silently dropped — spec declares them singular, processor only read a `guid_list` + +**Status:** fixed 2026-09-17 (Dr.Egeria — `md_processing/v2/data_designer.py`), +verified live against `qs-view-server` with throwaway elements (created, +relationship confirmed via direct fetch, then deleted). Reported by an +external maintainer/user agent. + +**Reported symptom:** both attributes are declared singular +(`"style": "Reference Name"`, `max_cardinality: 1`) in +`commands_data_designer.json`, but the link was never established — no +error, `--process` reported `SUCCESS`. Users worked around it with +explicit `Add Member to Collection` / `Link Field to Structure` blocks, +deliberately omitting the `In` attributes so a fix couldn't double-link. + +**Root cause:** the parser (`md_processing/v2/processors.py`, ~line 787-840) +stores a singular `Reference Name` attribute's resolved guid under +`attr_data["guid"]`, and only populates `attr_data["guid_list"]` when the +raw input value is itself a list. `DataStructureProcessor.apply_changes` +(line 220) and `DataFieldProcessor.apply_changes` (line 326) both read +only `.get("guid_list", [])` for `In Data Specification`/`In Data +Structure`, which is never set for these singular attributes — the +existing `if isinstance(x, list) else [x]` wrapper around the *default* +`[]` never triggers, since a default empty list is already a list. The +correct sibling pattern already existed in the same file (`Data Class`, +`Specializes Data Class`, `Glossary Term` all correctly also check the +singular `guid` key) — just not applied here. + +**Also found and fixed as the same bug:** `In Data Dictionary` (also a +singular `Reference Name` attribute per the compact spec) had the +identical `guid_list`-only read at 3 call sites — `DataStructureProcessor`, +`DataFieldProcessor`, and `DataClassProcessor`. + +**Fix:** all 4 call sites (`In Data Specification`, `In Data Structure` x2, +`In Data Dictionary` x3) now fall back to the singular `guid` key when +`guid_list` is absent, matching the existing `Glossary Term`/`Specializes +Data Class` pattern. Verified end-to-end against a live server: created a +throwaway `Data Specification` → `Data Structure` (`In Data Specification`) +→ `Data Field` (`In Data Structure`), fetched both back and confirmed the +real `CollectionMembership` and `MemberDataField` relationships were +created, then deleted all three. `pytest tests/micro-tests -m unit`: all +pass, no regressions. + +--- + ### ISSUE-94: `SchemaMaker._async_delete_schema_type`/`_async_delete_schema_attribute` sent `MetadataSourceRequestBody` — the live server's schema-maker delete endpoints reject it outright **Status:** fixed 2026-09-11 (Pyegeria — `pyegeria/omvs/schema_maker.py`), diff --git a/md_processing/data/compact_commands/commands_actor_manager_compact.json b/md_processing/data/compact_commands/commands_actor_manager_compact.json index 3bcc8e74..5c52fece 100644 --- a/md_processing/data/compact_commands/commands_actor_manager_compact.json +++ b/md_processing/data/compact_commands/commands_actor_manager_compact.json @@ -579,25 +579,6 @@ "level": "Basic", "Journal Entry": "" }, - "Due Time": { - "variable_name": "due_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Due date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Effective From": { "variable_name": "effective_from", "inUpdate": true, @@ -1630,25 +1611,6 @@ "level": "Advanced", "Journal Entry": "" }, - "Requested Start Time": { - "variable_name": "requested_start_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Requested start date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Resource Description": { "variable_name": "resource_description", "inUpdate": true, @@ -2814,6 +2776,44 @@ "max_cardinality": 1, "level": "Domain", "Journal Entry": "" + }, + "Priority": { + "variable_name": "priority", + "inUpdate": true, + "attr_labels": "", + "examples": "", + "default_value": "", + "valid_values": [], + "existing_element": "", + "description": "An integer priority for the project.", + "generated": false, + "style": "Simple Int", + "user_specified": true, + "unique": false, + "input_required": false, + "min_cardinality": 0, + "max_cardinality": 1, + "level": "Domain", + "Journal Entry": "" + }, + "Situation": { + "variable_name": "situation", + "inUpdate": true, + "attr_labels": "", + "examples": "", + "default_value": "", + "valid_values": [], + "existing_element": "", + "description": "Describe the notification (title/summary)", + "generated": false, + "style": "Simple", + "user_specified": true, + "unique": false, + "input_required": false, + "min_cardinality": 0, + "max_cardinality": 1, + "level": "Domain", + "Journal Entry": "" } }, "bundles": { @@ -2900,9 +2900,7 @@ "Situation", "Objective", "Priority", - "Activity Status", - "Requested Start Time", - "Due Time" + "Activity Status" ] }, "Referenceable": { diff --git a/md_processing/data/compact_commands/commands_data_designer.json b/md_processing/data/compact_commands/commands_data_designer.json index ef703d2c..a6499e2f 100644 --- a/md_processing/data/compact_commands/commands_data_designer.json +++ b/md_processing/data/compact_commands/commands_data_designer.json @@ -2667,7 +2667,7 @@ "existing_element": "", "description": "The time interval in milliseconds between data captures for time-based data grains.", "generated": false, - "style": "Simple Float", + "style": "Simple Int", "user_specified": true, "unique": false, "input_required": false, diff --git a/md_processing/data/compact_commands/commands_digital_products_compact.json b/md_processing/data/compact_commands/commands_digital_products_compact.json index 6b15afba..e6e49dc5 100644 --- a/md_processing/data/compact_commands/commands_digital_products_compact.json +++ b/md_processing/data/compact_commands/commands_digital_products_compact.json @@ -2511,44 +2511,6 @@ "level": "Domain", "Journal Entry": "" }, - "Product Status": { - "variable_name": "product_status", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Lifecycle status of the digital product.", - "generated": false, - "style": "Valid Value", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, - "Product Type": { - "variable_name": "product_type", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Type of digital product (e.g., Periodic Delta, On Demand, Snapshot).", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Service Life": { "variable_name": "service_life", "inUpdate": true, @@ -2606,25 +2568,6 @@ "level": "Domain", "Journal Entry": "" }, - "Subscription Level": { - "variable_name": "subscription_level", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Level or tier of the subscription (e.g., basic, premium, enterprise).", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Support Level": { "variable_name": "support_level", "inUpdate": true, @@ -2792,8 +2735,6 @@ "Maturity", "Next Version Date", "Product Name", - "Product Status", - "Product Type", "Service Life", "Withdrawal Date" ] @@ -2807,7 +2748,6 @@ "Digital Subscription Base": { "inherits": "Agreement Base", "own_attributes": [ - "Subscription Level", "Support Level" ] }, diff --git a/md_processing/data/compact_commands/commands_feedback_compact.json b/md_processing/data/compact_commands/commands_feedback_compact.json index 6b705cad..87447fed 100644 --- a/md_processing/data/compact_commands/commands_feedback_compact.json +++ b/md_processing/data/compact_commands/commands_feedback_compact.json @@ -579,25 +579,6 @@ "level": "Basic", "Journal Entry": "" }, - "Due Time": { - "variable_name": "due_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Due date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Effective From": { "variable_name": "effective_from", "inUpdate": true, @@ -1630,25 +1611,6 @@ "level": "Advanced", "Journal Entry": "" }, - "Requested Start Time": { - "variable_name": "requested_start_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Requested start date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Resource Description": { "variable_name": "resource_description", "inUpdate": true, @@ -2386,25 +2348,6 @@ "level": "Domain", "Journal Entry": "" }, - "Expected Behavior": { - "variable_name": "expected_behavior", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Optionally descibe action to be taken.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Informal Tag": { "variable_name": "informal_tag", "inUpdate": true, @@ -2544,6 +2487,25 @@ "max_cardinality": 1, "level": "Domain", "Journal Entry": "" + }, + "Priority": { + "variable_name": "priority", + "inUpdate": true, + "attr_labels": "", + "examples": "", + "default_value": "", + "valid_values": [], + "existing_element": "", + "description": "An integer priority for the project.", + "generated": false, + "style": "Simple Int", + "user_specified": true, + "unique": false, + "input_required": false, + "min_cardinality": 0, + "max_cardinality": 1, + "level": "Domain", + "Journal Entry": "" } }, "bundles": { @@ -2630,9 +2592,7 @@ "Situation", "Objective", "Priority", - "Activity Status", - "Requested Start Time", - "Due Time" + "Activity Status" ] }, "Referenceable": { @@ -2684,7 +2644,6 @@ "own_attributes": [ "Description", "Display Name", - "Expected Behavior", "GUID", "Qualified Name", "Situation" diff --git a/md_processing/data/compact_commands/commands_governance_officer_compact.json b/md_processing/data/compact_commands/commands_governance_officer_compact.json index 98216cf0..49942ff3 100644 --- a/md_processing/data/compact_commands/commands_governance_officer_compact.json +++ b/md_processing/data/compact_commands/commands_governance_officer_compact.json @@ -3662,6 +3662,25 @@ "max_cardinality": 1, "level": "Domain", "Journal Entry": "" + }, + "Agreement Item Id": { + "variable_name": "agreement_item_id", + "inUpdate": true, + "attr_labels": "", + "examples": "", + "default_value": "", + "valid_values": [], + "existing_element": "", + "description": "A user specified agreement item identifier.", + "generated": false, + "style": "Simple", + "user_specified": true, + "unique": false, + "input_required": false, + "min_cardinality": 0, + "max_cardinality": 1, + "level": "Domain", + "Journal Entry": "" } }, "bundles": { @@ -3822,6 +3841,15 @@ "Security Access Control": { "inherits": "Governance Control Base", "own_attributes": [] + }, + "Agreement T&C Base": { + "inherits": "Link Command Base", + "own_attributes": [ + "Agreement Item Id", + "Agreement Start Date", + "Agreement End Date", + "Usage Measurements" + ] } }, "commands": { @@ -4402,7 +4430,7 @@ "Agreement Terms & Conditions" ], "family": "Governance Officer", - "description": "Links an agreement to terms and conditions definition with implementation details.", + "description": "Links an agreement to a terms and conditions definition with agreement-item-specific implementation details (item id, effective dates, usage measurements). Entitlements/Obligations/Restrictions live on the Terms and Conditions element itself, not on this relationship.", "verb": "Link", "upsert": false, "attach": false, @@ -4411,8 +4439,8 @@ "find_constraints": "", "extra_find": "", "extra_constraints": "", - "OM_TYPE": "CollectionMembership", - "bundle": "Collection Membership", + "OM_TYPE": "AgreementItem", + "bundle": "Agreement T&C Base", "custom_attributes": [ "Terms & Conditions Id", "Agreement Name" diff --git a/md_processing/data/compact_commands/commands_project_compact.json b/md_processing/data/compact_commands/commands_project_compact.json index 55e538ac..2add2f76 100644 --- a/md_processing/data/compact_commands/commands_project_compact.json +++ b/md_processing/data/compact_commands/commands_project_compact.json @@ -579,25 +579,6 @@ "level": "Basic", "Journal Entry": "" }, - "Due Time": { - "variable_name": "due_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Due date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Effective From": { "variable_name": "effective_from", "inUpdate": true, @@ -1630,25 +1611,6 @@ "level": "Advanced", "Journal Entry": "" }, - "Requested Start Time": { - "variable_name": "requested_start_time", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "", - "description": "Requested start date/time for a Meeting, ToDo, or Review person action.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Resource Description": { "variable_name": "resource_description", "inUpdate": true, @@ -2669,6 +2631,25 @@ "max_cardinality": 1, "level": "Domain", "Journal Entry": "" + }, + "Situation": { + "variable_name": "situation", + "inUpdate": true, + "attr_labels": "", + "examples": "", + "default_value": "", + "valid_values": [], + "existing_element": "", + "description": "Describe the notification (title/summary)", + "generated": false, + "style": "Simple", + "user_specified": true, + "unique": false, + "input_required": false, + "min_cardinality": 0, + "max_cardinality": 1, + "level": "Domain", + "Journal Entry": "" } }, "bundles": { @@ -2755,9 +2736,7 @@ "Situation", "Objective", "Priority", - "Activity Status", - "Requested Start Time", - "Due Time" + "Activity Status" ] }, "Referenceable": { diff --git a/md_processing/data/compact_commands/commands_solution_architect_compact.json b/md_processing/data/compact_commands/commands_solution_architect_compact.json index 0098bc3c..452c71a4 100644 --- a/md_processing/data/compact_commands/commands_solution_architect_compact.json +++ b/md_processing/data/compact_commands/commands_solution_architect_compact.json @@ -2713,25 +2713,6 @@ "level": "Domain", "Journal Entry": "Migrated 2026-08-15 from a hardcoded GovernanceDomain Java enum to the live domainIdentifier Valid Metadata Value set (same underlying concept as governance-officer's Domain Identifier, just labeled for a Solution Role). See parsing.py Valid Value style + legacy_enum_type for the old-enum backward-compat path." }, - "Role Identifier": { - "variable_name": "role_identifier", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "", - "valid_values": [], - "existing_element": "actorRole", - "description": "A user-assigned identifier for the solution role.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Role List": { "variable_name": "role_list", "inUpdate": true, @@ -2751,25 +2732,6 @@ "level": "Domain", "Journal Entry": "" }, - "Role Type": { - "variable_name": "role_type", - "inUpdate": true, - "attr_labels": "", - "examples": "", - "default_value": "GovernanceRole", - "valid_values": [], - "existing_element": "", - "description": "Type of the solution role. Currently must be GovernanceRole.", - "generated": false, - "style": "Simple", - "user_specified": true, - "unique": false, - "input_required": false, - "min_cardinality": 0, - "max_cardinality": 1, - "level": "Domain", - "Journal Entry": "" - }, "Segment1": { "variable_name": "segment1", "inUpdate": true, @@ -3378,8 +3340,6 @@ "inherits": "Authored Referenceable", "own_attributes": [ "Role Domain Identifier", - "Role Identifier", - "Role Type", "Scope", "Title" ] diff --git a/md_processing/data/generated_format_sets.json b/md_processing/data/generated_format_sets.json index bea90ba5..f348a1b6 100644 --- a/md_processing/data/generated_format_sets.json +++ b/md_processing/data/generated_format_sets.json @@ -22854,22 +22854,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -22934,22 +22918,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -23040,22 +23008,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -23120,22 +23072,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -23221,22 +23157,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -23325,22 +23245,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -23455,22 +23359,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -23559,22 +23447,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -88974,14 +88846,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -89023,14 +88887,6 @@ "OTHER" ] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Category", "key": "category", @@ -89137,14 +88993,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -89186,14 +89034,6 @@ "OTHER" ] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Category", "key": "category", @@ -89346,22 +89186,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -89517,22 +89341,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -89844,14 +89652,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -89933,14 +89733,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "User Defined Status", "key": "user_defined_status", @@ -90212,14 +90004,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -90301,14 +90085,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "User Defined Status", "key": "user_defined_status", @@ -90642,22 +90418,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -91018,22 +90778,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Product Status", - "key": "product_status", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Product Type", - "key": "product_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Service Life", "key": "service_life", @@ -96458,14 +96202,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -96573,14 +96309,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -96734,14 +96462,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -96857,14 +96577,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -97136,14 +96848,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -97456,14 +97160,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -97838,14 +97534,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -98166,14 +97854,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Subscription Level", - "key": "subscription_level", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Support Level", "key": "support_level", @@ -119394,14 +119074,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -119444,14 +119116,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -119483,14 +119147,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -119533,14 +119189,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -119641,14 +119289,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -119715,14 +119355,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -119778,14 +119410,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -119852,14 +119476,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -120742,22 +120358,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -120822,22 +120422,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -120928,22 +120512,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -121008,22 +120576,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -121109,22 +120661,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -121213,22 +120749,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -121343,22 +120863,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -121447,22 +120951,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -121524,22 +121012,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -121612,22 +121084,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -121727,22 +121183,6 @@ "OTHER" ] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -121815,22 +121255,6 @@ "OTHER" ] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -121923,22 +121347,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -122035,22 +121443,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -122174,22 +121566,6 @@ "OTHER" ] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -122286,22 +121662,6 @@ "OTHER" ] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Commented On Element", "key": "commented_on_element", @@ -122362,14 +121722,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122412,14 +121764,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122451,14 +121795,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -122501,14 +121837,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -122609,14 +121937,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122683,14 +122003,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122746,14 +122058,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -122820,14 +122124,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -122904,14 +122200,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122954,14 +122242,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -122993,14 +122273,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -123043,14 +122315,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -123151,14 +122415,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -123225,14 +122481,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Situation", "key": "situation", @@ -123288,14 +122536,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -123362,14 +122602,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Expected Behavior", - "key": "expected_behavior", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "GUID", "key": "guid", @@ -205548,22 +204780,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -205628,22 +204844,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -205734,22 +204934,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -205814,22 +204998,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -205915,22 +205083,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -206019,22 +205171,6 @@ "detail_spec": null, "valid_values": [] }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Activity Status", "key": "activity_status", @@ -206149,22 +205285,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ], "columns": [ @@ -206253,22 +205373,6 @@ "ABANDONED", "OTHER" ] - }, - { - "name": "Requested Start Time", - "key": "requested_start_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Due Time", - "key": "due_time", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] } ] } @@ -232708,22 +231812,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -232841,22 +231929,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -233020,22 +232092,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -233161,22 +232217,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -233456,22 +232496,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -233794,22 +232818,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -234194,22 +233202,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", @@ -234540,22 +233532,6 @@ "Other" ] }, - { - "name": "Role Identifier", - "key": "role_identifier", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, - { - "name": "Role Type", - "key": "role_type", - "value": null, - "format": false, - "detail_spec": null, - "valid_values": [] - }, { "name": "Scope", "key": "scope", diff --git a/md_processing/md_processing_utils/common_md_utils.py b/md_processing/md_processing_utils/common_md_utils.py index b694cb01..155f1a09 100644 --- a/md_processing/md_processing_utils/common_md_utils.py +++ b/md_processing/md_processing_utils/common_md_utils.py @@ -334,7 +334,7 @@ def set_rel_prop_body(object_type: str, attributes: dict)->dict: prop_name = object_type.replace(" ", "") display_name = attributes.get('Display Name', {}).get('value', None) - return { + body = { "class": prop_name + "Properties", "description": attributes.get('Description', {}).get('value', None), "label": attributes.get('Label', {}).get('value', None) or attributes.get('Link Label', {}).get('value', None), @@ -344,6 +344,24 @@ def set_rel_prop_body(object_type: str, attributes: dict)->dict: "extendedProperties": attributes.get('Extended Properties', {}).get('value', None), } + # Type-specific relationship properties -- set_rel_prop_body is otherwise + # fully generic, so a type declaring its own compact-spec attributes + # (beyond the shared Description/Label/Effective From/To pool) needs an + # explicit branch here, same pattern as update_gov_body_for_type/ + # set_collection_manager_body for element bodies. Each of these was + # found silently dropped (declared in the compact spec, never read + # anywhere) via scripts/dr_egeria_attribute_consumption_audit.py. + if prop_name == "NotificationSubscriber": + body["zoneMembership"] = attributes.get('Zone Membership', {}).get('value') + body["lastNotification"] = attributes.get('Last Notification', {}).get('value') + body["activityStatus"] = attributes.get('Activity Status', {}).get('value') + elif prop_name == "AssignmentScope": + body["assignmentType"] = attributes.get('Assignment Type', {}).get('value') + elif prop_name in {"PersonRoleAppointment", "TeamRoleAppointment"}: + body["expectedTimeAllocationPercent"] = attributes.get('Expected Time Allocation Percent', {}).get('value') + + return body + def _to_egeria_type_name(object_type: str) -> str: """Normalize human-readable object labels into canonical Egeria type names.""" @@ -404,12 +422,14 @@ def set_collection_manager_body(object_type: str, qualified_name: str, attribute Handles subtypes like Digital Product, Agreement, Digital Subscription, etc. """ prop_bod = set_element_prop_body(object_type, qualified_name, attributes) + prop_bod["purpose"] = attributes.get('Purpose', {}).get('value', None) # Handle Digital Product and Digital Product Family if "Digital Product" in object_type: prop_bod.update({ "productName": attributes.get('Product Name', {}).get('value', None), "maturity": attributes.get('Maturity', {}).get('value', None), + "currentVersion": attributes.get('Current Version', {}).get('value', None), "serviceLife": attributes.get('Service Life', {}).get('value', None), "introductionDate": attributes.get('Introduction Date', {}).get('value', None), "withdrawalDate": attributes.get('Withdrawal Date', {}).get('value', None), @@ -548,6 +568,7 @@ def set_data_field_body(object_type: str, qualified_name: str, attributes: dict) prop_bod["namePatterns"] = attributes.get('Name Patterns', {}).get('value', []) prop_bod["defaultValue"] = attributes.get('Default Value', {}).get('value', None) prop_bod["isNullable"] = attributes.get('Is Nullable', {}).get('value', None) + prop_bod["allowsDuplicateValues"] = attributes.get('Allow Duplicate Values', {}).get('value', None) prop_bod["dataType"] = attributes.get('Data Type', {}).get('value', None) prop_bod["units"] = attributes.get('Units', {}).get('value', None) prop_bod["minimumLength"] = attributes.get('Minimum Length', {}).get('value', None) @@ -686,6 +707,22 @@ def update_gov_body_for_type(object_type: str, body: dict, attributes: dict) -> body['ignoreMultipleTriggers'] = attributes.get('Ignore Multiple Triggers', {}).get('value', None) return body + elif gov_def_name == "DataLens": + # ISSUE-99 follow-up: DataLens had no branch here either, so all 9 of + # its compact-spec attributes fell through to the generic fallback + # below -- same shape as the GovernanceActionType/ProcessStep gap + # above (ISSUE-71). + body['dataCollectionStartTime'] = attributes.get('Data Collection Start Time', {}).get('value', None) + body['dataCollectionEndTime'] = attributes.get('Data Collection End Time', {}).get('value', None) + body['minLongitude'] = attributes.get('Min Longitude', {}).get('value', None) + body['maxLongitude'] = attributes.get('Max Longitude', {}).get('value', None) + body['minLatitude'] = attributes.get('Min Latitude', {}).get('value', None) + body['maxLatitude'] = attributes.get('Max Latitude', {}).get('value', None) + body['minHeight'] = attributes.get('Min Height', {}).get('value', None) + body['maxHeight'] = attributes.get('Max Height', {}).get('value', None) + body['scopeElements'] = attributes.get('Scope Elements', {}).get('value', None) + return body + # Preserve base governance fields for subtypes without dedicated custom mappings. return body diff --git a/md_processing/v2/collection_manager_processor.py b/md_processing/v2/collection_manager_processor.py index 9d45c1a5..41726e92 100644 --- a/md_processing/v2/collection_manager_processor.py +++ b/md_processing/v2/collection_manager_processor.py @@ -126,12 +126,25 @@ async def apply_changes(self) -> str: } } elif "Glossary" in object_type: - # Default classifications for Glossary if not specified - body["initialClassifications"] = { - "Taxonomy": {"class": "TaxonomyProperties"}, - "CanonicalVocabulary": {"class": "CanonicalVocabularyProperties"} - } - + # Was unconditional (both classifications on every Glossary, + # regardless of what the user set) -- confirmed live bug, not + # just a missing field (PYEGERIA_ISSUES.md Cluster B + # follow-up). Is Canonical/Is Taxonomy both default False per + # the compact spec, so default False here too if unset. + glossary_classifications = {} + if attributes.get('Is Taxonomy', {}).get('value', False): + glossary_classifications["Taxonomy"] = { + "class": "TaxonomyProperties", + "organizingPrinciple": attributes.get('Organizing Principle', {}).get('value'), + } + if attributes.get('Is Canonical', {}).get('value', False): + glossary_classifications["CanonicalVocabulary"] = { + "class": "CanonicalVocabularyProperties", + "scope": attributes.get('Canonical Scope', {}).get('value'), + } + if glossary_classifications: + body["initialClassifications"] = glossary_classifications + # Handle parent relationship for collections if specified if body.get('parentGUID') and not body.get('parentRelationshipTypeName'): @@ -313,6 +326,7 @@ async def apply_changes(self) -> str: body['properties'] = { "class": "CollectionMembershipProperties", "typeName": "CollectionMembership", + "membershipType": attributes.get('Membership Type', {}).get('value'), "membershipRationale": attributes.get('Membership Rationale', {}).get('value'), "expression": attributes.get('Expression', {}).get('value'), "membershipStatus": attributes.get('Membership Status', {}).get('value', 'ACTIVE').upper(), @@ -325,7 +339,7 @@ async def apply_changes(self) -> str: "notes": attributes.get('Notes', {}).get('value'), } await self.client._async_add_to_collection(guid_coll, guid_el, body_slimmer(body)) - + elif "Product Dependency" in object_type: guid1 = attributes.get('Digital Product 1', {}).get('guid') guid2 = attributes.get('Digital Product 2', {}).get('guid') @@ -333,7 +347,7 @@ async def apply_changes(self) -> str: "class": "DigitalProductDependencyProperties", "typeName": "DigitalProductDependency", "label": attributes.get('Label', {}).get('value'), - "description": attributes.get('Description', {}).get('value'), + "description": attributes.get('Dependency Description', {}).get('value'), "effectiveFrom": attributes.get('Effective From', {}).get('value'), "effectiveTo": attributes.get('Effective To', {}).get('value') } diff --git a/md_processing/v2/data_designer.py b/md_processing/v2/data_designer.py index aba59e7e..706561c4 100644 --- a/md_processing/v2/data_designer.py +++ b/md_processing/v2/data_designer.py @@ -63,6 +63,17 @@ async def apply_changes(self) -> str: "additionalProperties": attributes.get('Additional Properties', {}).get('value', {}) } + # "In Data Value Specification"/"Specializes Data Value Specification" + # both describe the same DataValueHierarchy parent -- near-synonym + # descriptions in the compact spec, treated as aliases of one + # relationship (see PYEGERIA_ISSUES.md ISSUE-101 follow-up). + value_spec_parent_guids = set(attributes.get('In Data Value Specification', {}).get('guid_list', [])) + if attributes.get('In Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['In Data Value Specification']['guid']) + value_spec_parent_guids |= set(attributes.get('Specializes Data Value Specification', {}).get('guid_list', [])) + if attributes.get('Specializes Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['Specializes Data Value Specification']['guid']) + if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) if not guid: @@ -72,6 +83,8 @@ async def apply_changes(self) -> str: await self.client.data_designer._async_update_data_value_specification(guid, body) self.parsed_output["guid"] = guid + await self._sync_value_spec_parent(guid, value_spec_parent_guids, replace_all=True) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -91,6 +104,8 @@ async def apply_changes(self) -> str: if guid: self.parsed_output["guid"] = guid + await self._sync_value_spec_parent(guid, value_spec_parent_guids, replace_all=True, known_new=True) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -111,6 +126,22 @@ async def fetch_element(self, guid: str) -> Optional[Dict[str, Any]]: except PyegeriaException: return None + async def _sync_value_spec_parent(self, guid: str, to_be_guids: set, replace_all: bool, known_new: bool = False): + """Sync this element's DataValueHierarchy parent(s).""" + if known_new: + as_is = set() + else: + rel_els = await self.client.data_designer._async_get_data_value_specification_rel_elements(guid) or {} + as_is = set(rel_els.get("specialized_data_value_spec_guids", [])) + sync_res = await self.sync_members(as_is, to_be_guids, + lambda p: self.client.data_designer._async_link_specialized_data_value_specification(p, guid, None), + lambda p: self.client.data_designer._async_detach_specialized_data_value_specification(p, guid, None), + replace_all) + if sync_res.get("added") or sync_res.get("removed"): + self.add_related_result("Data Value Specification Sync", message=f"Added {len(sync_res['added'])}, Removed {len(sync_res['removed'])}") + if sync_res.get("errors"): + self.add_related_result("Data Value Specification Sync", status="failure", message="; ".join(sync_res["errors"])) + class DataCollectionProcessor(AsyncBaseCommandProcessor): """ Processor for Data Specifications and Data Dictionaries. @@ -217,11 +248,11 @@ async def apply_changes(self) -> str: prop_body['namespace'] = attributes.get('Namespace', {}).get('value', None) # Collection memberships - data_spec_guids = attributes.get("In Data Specification", {}).get("guid_list", []) - data_dict_guids = attributes.get("In Data Dictionary", {}).get("guid_list", []) - to_be_guids = set((data_spec_guids if isinstance(data_spec_guids, list) else [data_spec_guids]) + - (data_dict_guids if isinstance(data_dict_guids, list) else [data_dict_guids])) - to_be_guids = {g for g in to_be_guids if g} + in_data_spec = attributes.get("In Data Specification", {}) + data_spec_guids = in_data_spec.get("guid_list") or ([in_data_spec["guid"]] if in_data_spec.get("guid") else []) + in_data_dict = attributes.get("In Data Dictionary", {}) + data_dict_guids = in_data_dict.get("guid_list") or ([in_data_dict["guid"]] if in_data_dict.get("guid") else []) + to_be_guids = {g for g in (data_spec_guids + data_dict_guids) if g} if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) @@ -324,12 +355,18 @@ async def apply_changes(self) -> str: # 2. Relationships data_struct_guids = set(attributes.get('In Data Structure', {}).get('guid_list', [])) - parent_field_guids = set(attributes.get('Parent Data Field', {}).get('guid_list', [])) + if attributes.get('In Data Structure', {}).get('guid'): + data_struct_guids.add(attributes['In Data Structure']['guid']) + parent_field_guids = set(attributes.get('In Data Field', {}).get('guid_list', [])) + if attributes.get('In Data Field', {}).get('guid'): + parent_field_guids.add(attributes['In Data Field']['guid']) term_guids = set(attributes.get('Glossary Term', {}).get('guid_list', [])) if attributes.get('Glossary Term', {}).get('guid'): term_guids.add(attributes['Glossary Term']['guid']) data_class_guid = attributes.get('Data Class', {}).get('guid') data_dict_guids = set(attributes.get('In Data Dictionary', {}).get('guid_list', [])) + if attributes.get('In Data Dictionary', {}).get('guid'): + data_dict_guids.add(attributes['In Data Dictionary']['guid']) if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) @@ -341,7 +378,7 @@ async def apply_changes(self) -> str: await self.client.data_designer._async_update_data_field(guid, body) self.parsed_output["guid"] = guid - await self._sync_all_rels(guid, data_struct_guids, parent_field_guids, term_guids, data_class_guid, data_dict_guids, not merge_update) + await self._sync_all_rels(guid, data_struct_guids, parent_field_guids, term_guids, data_class_guid, data_dict_guids, not merge_update, attributes=attributes) if journal_entry: try: @@ -365,7 +402,7 @@ async def apply_changes(self) -> str: self.parsed_output["guid"] = guid # known_new=True: this GUID was just created, so it cannot have # any existing relationships yet -- skip the as-is fetches. - await self._sync_all_rels(guid, data_struct_guids, parent_field_guids, term_guids, data_class_guid, data_dict_guids, replace_all=True, known_new=True) + await self._sync_all_rels(guid, data_struct_guids, parent_field_guids, term_guids, data_class_guid, data_dict_guids, replace_all=True, known_new=True, attributes=attributes) if journal_entry: try: @@ -382,7 +419,7 @@ async def apply_changes(self) -> str: return self.command.raw_block async def _sync_all_rels(self, guid: str, ds_guids: set, parent_guids: set, term_guids: set, dc_guid: str, dict_guids: set, - replace_all: bool, known_new: bool = False): + replace_all: bool, known_new: bool = False, attributes: dict = None): """ Unified relationship sync for Data Field. @@ -397,9 +434,19 @@ async def _sync_all_rels(self, guid: str, ds_guids: set, parent_guids: set, term rel_els = await self.client.data_designer._async_get_data_field_rel_elements(guid) # 1. Data Structures + attributes = attributes or {} + member_field_body = body_slimmer({ + "class": "NewRelationshipRequestBody", + "properties": body_slimmer({ + "class": "MemberDataFieldProperties", + "position": attributes.get('Position', {}).get('value'), + "minCardinality": attributes.get('Minimum Cardinality', {}).get('value'), + "maxCardinality": attributes.get('Maximum Cardinality', {}).get('value'), + }), + }) as_is_ds = set(rel_els.get("data_structure_guids", [])) sync_res = await self.sync_members(as_is_ds, ds_guids, - lambda ds: self.client.data_designer._async_link_member_data_field(ds, guid, None), + lambda ds: self.client.data_designer._async_link_member_data_field(ds, guid, member_field_body), lambda ds: self.client.data_designer._async_detach_member_data_field(ds, guid, None), replace_all) if sync_res.get("added") or sync_res.get("removed"): @@ -497,7 +544,8 @@ async def apply_changes(self) -> str: "specification": attributes.get('Specification', {}).get('value'), "specificationDetails": attributes.get('Specification Details', {}).get('value', {}), "dataType": attributes.get('Data Type', {}).get('value'), - "allowsDuplicateValues": attributes.get('Allow Duplicates', {}).get('value', True), + "allowsDuplicateValues": attributes.get('Allow Duplicate Values', {}).get('value', True), + "isCaseSensitive": attributes.get('Is Case Sensitive', {}).get('value'), "isNullable": attributes.get('Is Nullable', {}).get('value', True), "defaultValue": attributes.get('Default Value', {}).get('value'), "averageValue": attributes.get('Average Value', {}).get('value'), @@ -518,6 +566,18 @@ async def apply_changes(self) -> str: if attributes.get('Specializes Data Class', {}).get('guid'): specializes_dc_guids.add(attributes['Specializes Data Class']['guid']) data_dict_guids = set(attributes.get('In Data Dictionary', {}).get('guid_list', [])) + if attributes.get('In Data Dictionary', {}).get('guid'): + data_dict_guids.add(attributes['In Data Dictionary']['guid']) + # "In Data Value Specification"/"Specializes Data Value Specification" + # both describe the same DataValueHierarchy parent -- near-synonym + # descriptions in the compact spec, treated as aliases of one + # relationship (see PYEGERIA_ISSUES.md ISSUE-101 follow-up). + value_spec_parent_guids = set(attributes.get('In Data Value Specification', {}).get('guid_list', [])) + if attributes.get('In Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['In Data Value Specification']['guid']) + value_spec_parent_guids |= set(attributes.get('Specializes Data Value Specification', {}).get('guid_list', [])) + if attributes.get('Specializes Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['Specializes Data Value Specification']['guid']) if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) @@ -527,8 +587,8 @@ async def apply_changes(self) -> str: self.last_body = body = {"class": "UpdateElementRequestBody", "properties": props} await self.client.data_designer._async_update_data_value_specification(guid, body) self.parsed_output["guid"] = guid - - await self._sync_all_rels(guid, containing_dc_guids, term_guids, specializes_dc_guids, data_dict_guids, not merge_update) + + await self._sync_all_rels(guid, containing_dc_guids, term_guids, specializes_dc_guids, data_dict_guids, not merge_update, value_spec_parent_guids=value_spec_parent_guids) if journal_entry: try: @@ -550,7 +610,7 @@ async def apply_changes(self) -> str: self.parsed_output["guid"] = guid # known_new=True: this GUID was just created, so it cannot have # any existing relationships yet -- skip the as-is fetches. - await self._sync_all_rels(guid, containing_dc_guids, term_guids, specializes_dc_guids, data_dict_guids, replace_all=True, known_new=True) + await self._sync_all_rels(guid, containing_dc_guids, term_guids, specializes_dc_guids, data_dict_guids, replace_all=True, known_new=True, value_spec_parent_guids=value_spec_parent_guids) if journal_entry: try: @@ -567,7 +627,7 @@ async def apply_changes(self) -> str: return self.command.raw_block async def _sync_all_rels(self, guid: str, cont_guids: set, term_guids: set, spec_guids: set, dict_guids: set, - replace_all: bool, known_new: bool = False): + replace_all: bool, known_new: bool = False, value_spec_parent_guids: set = None): """known_new=True skips both as-is fetches below (see DataFieldProcessor._sync_all_rels).""" rel_els = {} if known_new else (await self.client.data_designer._async_get_data_class_rel_elements(guid) or {}) @@ -621,6 +681,18 @@ async def _sync_all_rels(self, guid: str, cont_guids: set, term_guids: set, spec if sync_res.get("errors"): self.add_related_result("Data Dictionaries Sync", status="failure", message="; ".join(sync_res["errors"])) + # 5. Data Value Specification parent (DataValueHierarchy) + if value_spec_parent_guids is not None: + as_is_value_spec = set(rel_els.get("specialized_data_value_spec_guids", [])) + sync_res = await self.sync_members(as_is_value_spec, value_spec_parent_guids, + lambda p: self.client.data_designer._async_link_specialized_data_value_specification(p, guid, None), + lambda p: self.client.data_designer._async_detach_specialized_data_value_specification(p, guid, None), + replace_all) + if sync_res.get("added") or sync_res.get("removed"): + self.add_related_result("Data Value Specification Sync", message=f"Added {len(sync_res['added'])}, Removed {len(sync_res['removed'])}") + if sync_res.get("errors"): + self.add_related_result("Data Value Specification Sync", status="failure", message="; ".join(sync_res["errors"])) + async def fetch_element(self, guid: str) -> Optional[Dict[str, Any]]: try: return await self.client.data_designer._async_get_data_class_by_guid(guid) @@ -644,6 +716,20 @@ async def apply_changes(self) -> str: om_type = spec.get("OM_TYPE") props_body = set_element_prop_body(om_type or "Data Grain", qualified_name, attributes) + props_body["grainStatement"] = attributes.get('Grain Statement', {}).get('value') + props_body["granularityBasis"] = attributes.get('Granularity Basis', {}).get('value') + props_body["interval"] = attributes.get('Interval', {}).get('value') + + # "In Data Value Specification"/"Specializes Data Value Specification" + # both describe the same DataValueHierarchy parent -- near-synonym + # descriptions in the compact spec, treated as aliases of one + # relationship (see PYEGERIA_ISSUES.md ISSUE-101 follow-up). + value_spec_parent_guids = set(attributes.get('In Data Value Specification', {}).get('guid_list', [])) + if attributes.get('In Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['In Data Value Specification']['guid']) + value_spec_parent_guids |= set(attributes.get('Specializes Data Value Specification', {}).get('guid_list', [])) + if attributes.get('Specializes Data Value Specification', {}).get('guid'): + value_spec_parent_guids.add(attributes['Specializes Data Value Specification']['guid']) if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) @@ -655,6 +741,8 @@ async def apply_changes(self) -> str: await self.client.data_designer._async_update_data_value_specification(guid, body) self.parsed_output["guid"] = guid + await self._sync_value_spec_parent(guid, value_spec_parent_guids, replace_all=True) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -676,6 +764,8 @@ async def apply_changes(self) -> str: if guid: self.parsed_output["guid"] = guid + await self._sync_value_spec_parent(guid, value_spec_parent_guids, replace_all=True, known_new=True) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -696,6 +786,23 @@ async def fetch_element(self, guid: str) -> Optional[Dict[str, Any]]: except PyegeriaException: return None + async def _sync_value_spec_parent(self, guid: str, to_be_guids: set, replace_all: bool, known_new: bool = False): + """Sync this element's DataValueHierarchy parent(s) -- shared by + DataGrainProcessor and DataValueSpecificationProcessor.""" + if known_new: + as_is = set() + else: + rel_els = await self.client.data_designer._async_get_data_value_specification_rel_elements(guid) or {} + as_is = set(rel_els.get("specialized_data_value_spec_guids", [])) + sync_res = await self.sync_members(as_is, to_be_guids, + lambda p: self.client.data_designer._async_link_specialized_data_value_specification(p, guid, None), + lambda p: self.client.data_designer._async_detach_specialized_data_value_specification(p, guid, None), + replace_all) + if sync_res.get("added") or sync_res.get("removed"): + self.add_related_result("Data Value Specification Sync", message=f"Added {len(sync_res['added'])}, Removed {len(sync_res['removed'])}") + if sync_res.get("errors"): + self.add_related_result("Data Value Specification Sync", status="failure", message="; ".join(sync_res["errors"])) + class LinkDataFieldProcessor(AsyncBaseCommandProcessor): """ diff --git a/md_processing/v2/embedded_process.py b/md_processing/v2/embedded_process.py index 622b0e87..479800a6 100644 --- a/md_processing/v2/embedded_process.py +++ b/md_processing/v2/embedded_process.py @@ -48,6 +48,12 @@ def _embedded_process_extra_properties(attributes: Dict[str, Any]) -> Dict[str, priority = attributes.get("Priority", {}).get("value") if priority is not None and priority != "": extra["priority"] = priority + deployed_implementation_type = attributes.get("Deployed Implementation Type", {}).get("value") + if deployed_implementation_type: + extra["deployedImplementationType"] = deployed_implementation_type + resource_name = attributes.get("Resource Name", {}).get("value") + if resource_name: + extra["resourceName"] = resource_name return extra diff --git a/md_processing/v2/feedback.py b/md_processing/v2/feedback.py index 48005c8a..2327a976 100644 --- a/md_processing/v2/feedback.py +++ b/md_processing/v2/feedback.py @@ -240,9 +240,9 @@ async def apply_changes(self) -> str: if mapped_type == "RelatedMedia": prop_body.update({ "mediaType": attributes.get('Media Type', {}).get('value'), - "mediaTypeOtherId": attributes.get('Media Type Other ID', {}).get('value'), + "mediaTypeOtherId": attributes.get('Media Type Other Id', {}).get('value'), "defaultMediaUsage": attributes.get('Default Media Usage', {}).get('value'), - "defaultMediaUsageOtherId": attributes.get('Default Media Usage Other ID', {}).get('value'), + "defaultMediaUsageOtherId": attributes.get('Default Media Usage Other Id', {}).get('value'), "datePublished": attributes.get('Date Published', {}).get('value'), "dateConnected": attributes.get('Date Connected', {}).get('value'), "dateCreated": attributes.get('Date Created', {}).get('value'), @@ -261,7 +261,7 @@ async def apply_changes(self) -> str: "publicationYear": attributes.get('Publication Year', {}).get('value'), "publicationNumbers": attributes.get('Publication Numbers', {}).get('value'), "defaultMediaUsage": attributes.get('Default Media Usage', {}).get('value'), - "defaultMediaUsageOtherId": attributes.get('Default Media Usage Other ID', {}).get('value'), + "defaultMediaUsageOtherId": attributes.get('Default Media Usage Other Id', {}).get('value'), }) if verb == "Update": guid = self.parsed_output.get("guid") or (self.as_is_element['elementHeader']['guid'] if self.as_is_element else None) diff --git a/md_processing/v2/glossary.py b/md_processing/v2/glossary.py index 8591d7eb..1db6a5ee 100644 --- a/md_processing/v2/glossary.py +++ b/md_processing/v2/glossary.py @@ -136,7 +136,7 @@ async def apply_changes(self) -> str: prop_body = set_element_prop_body(om_type or "GlossaryTerm", qualified_name, attributes) prop_body["aliases"] = attributes.get('Aliases', {}).get('value', None) prop_body["summary"] = attributes.get('Summary', {}).get('value', None) - prop_body["examples"] = attributes.get('Examples', {}).get('value', None) + prop_body["examples"] = attributes.get('Example', {}).get('value', None) prop_body["abbreviation"] = attributes.get('Abbreviation', {}).get('value', None) prop_body["usage"] = attributes.get('Usage', {}).get('value', None) prop_body["user_defined_status"] = attributes.get('UserDefinedStatus', {}).get('value', None) @@ -468,6 +468,7 @@ async def apply_changes(self) -> str: om_type = spec.get("OM_TYPE", "GlossaryTerm") prop_body = set_element_prop_body(om_type, qualified_name, attributes) + prop_body["examples"] = attributes.get('Example', {}).get('value', None) body = set_create_body(om_type, attributes) body["properties"] = prop_body body["initialClassifications"] = {"Question": {"class": "QuestionProperties"}} diff --git a/md_processing/v2/governance.py b/md_processing/v2/governance.py index 07260ca7..2d395181 100644 --- a/md_processing/v2/governance.py +++ b/md_processing/v2/governance.py @@ -412,6 +412,7 @@ async def apply_changes(self) -> str: "Certification": ("Certification Type", "Referenceable"), "License": ("License Type", "Referenceable"), "Agreement T&C": ("Agreement Name", ("Terms & Conditions Id", "Referenceable")), + "Associated List": ("Access Control", "Security List"), "Associated Group": ("Access Control", "Security Group"), "Monitored Resource": (("Notification Type", "Monitoring Control"), "Monitored Resource"), "Regulation Certification Type": ("Regulation", "Certification Type"), @@ -567,8 +568,8 @@ async def apply_changes(self) -> str: "properties": { "class": "AgreementItemProperties", "agreementItemId": attributes.get("Agreement Item Id", {}).get("value"), - "agreementStart": attributes.get("Start Date", {}).get("value"), - "agreementEnd": attributes.get("End Date", {}).get("value"), + "agreementStart": attributes.get("Agreement Start Date", {}).get("value"), + "agreementEnd": attributes.get("Agreement End Date", {}).get("value"), "entitlements": attributes.get("Entitlements", {}).get("value"), "obligations": attributes.get("Obligations", {}).get("value"), "restrictions": attributes.get("Restrictions", {}).get("value"), @@ -579,6 +580,33 @@ async def apply_changes(self) -> str: }) new_rel_guid = await self.client._async_link_agreement_item(left_guid, right_guid, body) + elif object_type == "Associated List": + # AssociatedSecurityList (SecurityAccessControl -> SecurityList) + # has no dedicated SDK method or .http ground truth -- confirmed + # live via ValidMetadataManager._async_get_all_relationship_defs() + # that it's a real relationship (attribute: operationName) and + # that MetadataExpert._async_create_related_elements is the + # correct generic mechanism (already used in production by + # AsyncBaseCommandProcessor._sync_parent_relationship for the + # same reason: no bespoke wrapper exists). Do not route this + # through _async_link_peer_definitions like the neighboring + # "Associated Group"/"Regulation Certification Type" branch -- + # that call is explicitly documented as valid only for + # GovernanceDriverLink/GovernancePolicyLink/GovernanceControlLink, + # and SecurityList is not a governance definition peer of + # SecurityAccessControl. + body = body_slimmer({ + "class": "NewRelatedElementsRequestBody", + "typeName": "AssociatedSecurityList", + "metadataElement1GUID": left_guid, + "metadataElement2GUID": right_guid, + "properties": { + "class": "AssociatedSecurityListProperties", + "operationName": attributes.get("Operation Name", {}).get("value"), + }, + }) + new_rel_guid = await self.client.metadata_expert._async_create_related_elements(body) + elif object_type in {"Associated Group", "Regulation Certification Type"}: rel_map = { "Associated Group": "AssociatedSecurityGroup", @@ -665,6 +693,15 @@ async def apply_changes(self) -> str: elif object_type == "Regulator": await self.client._async_detach_regulator_from_regulation(left_guid, right_guid, body) + elif object_type == "Associated List": + # _async_detach_related_elements_in_store validates against + # OpenMetadataDeleteRequestBody (strict "class" literal) -- + # not the DeleteRelationshipRequestBody `body` built above, + # which every other branch here uses. + await self.client.metadata_expert._async_detach_related_elements_in_store( + left_guid, "AssociatedSecurityList", right_guid, + {"class": "OpenMetadataDeleteRequestBody"}) + elif object_type in {"Associated Group", "Regulation Certification Type"}: rel_map = { "Associated Group": "AssociatedSecurityGroup", diff --git a/md_processing/v2/project.py b/md_processing/v2/project.py index 52fb4e94..b8d9149c 100644 --- a/md_processing/v2/project.py +++ b/md_processing/v2/project.py @@ -60,6 +60,11 @@ async def apply_changes(self) -> str: # matters - without it, the real stored qualifiedName never # matches what Dr.Egeria reports having created. qualified_name=qualified_name, + # Objective is a real MeetingProperties field -- confirmed + # live it's NOT shared by ToDo/Review/Note despite the + # compact spec's shared description implying otherwise + # (PYEGERIA_ISSUES.md Cluster B follow-up); only wired here. + objective=attributes.get('Objective', {}).get('value'), ) guid = self.extract_guid_or_raise(raw_guid, "Create Meeting") self.parsed_output["guid"] = guid diff --git a/md_processing/v2/report.py b/md_processing/v2/report.py index 7db65779..266f3244 100644 --- a/md_processing/v2/report.py +++ b/md_processing/v2/report.py @@ -182,6 +182,8 @@ async def apply_changes(self) -> str: props = set_element_prop_body("Report", qualified_name, attributes) props["additionalProperties"] = _report_additional_properties(attributes) + props["deployedImplementationType"] = attributes.get("Deployed Implementation Type", {}).get("value") + props["resourceName"] = attributes.get("Resource Name", {}).get("value") if self.as_is_element: guid = self.as_is_element["elementHeader"]["guid"] diff --git a/md_processing/v2/saved_query.py b/md_processing/v2/saved_query.py index 26f11d71..57179b62 100644 --- a/md_processing/v2/saved_query.py +++ b/md_processing/v2/saved_query.py @@ -52,6 +52,8 @@ async def apply_changes(self) -> str: props = set_element_prop_body("SavedQuery", qualified_name, attributes) props["queryURL"] = attributes.get("Query URL", {}).get("value") props["queryRequestBody"] = attributes.get("Query Request Body", {}).get("value") + props["deployedImplementationType"] = attributes.get("Deployed Implementation Type", {}).get("value") + props["resourceName"] = attributes.get("Resource Name", {}).get("value") if self.as_is_element: guid = self.as_is_element["elementHeader"]["guid"] diff --git a/md_processing/v2/solution_architect.py b/md_processing/v2/solution_architect.py index a6096aef..6c028020 100644 --- a/md_processing/v2/solution_architect.py +++ b/md_processing/v2/solution_architect.py @@ -36,6 +36,7 @@ async def apply_changes(self) -> str: journal_entry = attributes.get('Journal Entry', {}).get('value') comp_guids = set(attributes.get('Solution Components', {}).get('guid_list', [])) + role_guids = set(attributes.get('Role List', {}).get('guid_list', [])) spec = self.get_command_spec() om_type = spec.get("OM_TYPE") @@ -57,7 +58,13 @@ async def apply_changes(self) -> str: self.add_related_result("Components Sync", message=f"Added {len(sync_res['added'])}, Removed {len(sync_res['removed'])}") if sync_res.get("errors"): self.add_related_result("Components Sync", status="failure", message="; ".join(sync_res["errors"])) - + + role_sync_res = await self._sync_role_list(guid, role_guids, not merge_update) + if role_sync_res.get("added") or role_sync_res.get("removed"): + self.add_related_result("Role List Sync", message=f"Added {len(role_sync_res['added'])}, Removed {len(role_sync_res['removed'])}") + if role_sync_res.get("errors"): + self.add_related_result("Role List Sync", status="failure", message="; ".join(role_sync_res["errors"])) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -87,6 +94,12 @@ async def apply_changes(self) -> str: if sync_res.get("errors"): self.add_related_result("Components Sync", status="failure", message="; ".join(sync_res["errors"])) + role_sync_res = await self._sync_role_list(guid, role_guids, replace_all=True, known_new=True) + if role_sync_res.get("added") or role_sync_res.get("removed"): + self.add_related_result("Role List Sync", message=f"Added {len(role_sync_res['added'])}, Removed {len(role_sync_res['removed'])}") + if role_sync_res.get("errors"): + self.add_related_result("Role List Sync", status="failure", message="; ".join(role_sync_res["errors"])) + if journal_entry: try: j_guid = await async_add_note_in_dr_e(self.client, qualified_name, display_name, journal_entry) @@ -121,6 +134,32 @@ async def remove_fn(comp_guid): return await self.sync_members(as_is, to_be_guids, add_fn, remove_fn, replace_all) + async def _sync_role_list(self, guid: str, to_be_guids: Set[str], replace_all: bool, known_new: bool = False) -> Dict[str, Any]: + """CollectionMembership sync for 'Role List' -- same shape as the + standalone 'Link Actor to Blueprint' command uses (both are plain + collection membership; not a bespoke relationship type).""" + if known_new: + as_is: Set[str] = set() + else: + bp_element = await self.client._async_get_solution_blueprint_by_guid(guid) + as_is = { + m['relatedElement']['elementHeader']['guid'] + for m in bp_element.get('collectionMembers', []) + if 'ActorRole' in ( + [m.get('relatedElement', {}).get('elementHeader', {}).get('type', {}).get('typeName')] + + (m.get('relatedElement', {}).get('elementHeader', {}).get('type', {}).get('superTypeNames') or []) + ) + } + + async def add_fn(role_guid): + body = {"class": "NewRelationshipRequestBody", "properties": {"class": "CollectionMembershipProperties", "membershipRationale": "linked by Dr.Egeria v2"}} + await self.client._async_add_to_collection(guid, role_guid, body) + + async def remove_fn(role_guid): + await self.client._async_remove_from_collection(guid, role_guid, None) + + return await self.sync_members(as_is, to_be_guids, add_fn, remove_fn, replace_all) + class ComponentProcessor(AsyncBaseCommandProcessor): """ Processor for Solution Components. @@ -774,6 +813,7 @@ async def apply_changes(self) -> str: elif om_type == "CollectionMembership": properties["membershipRationale"] = attributes.get('Membership Rationale', {}).get('value') or description # Additional CollectionMembership properties + properties["membershipType"] = attributes.get('Membership Type', {}).get('value') properties["expression"] = attributes.get('Expression', {}).get('value') properties["membershipStatus"] = attributes.get('Membership Status', {}).get('value', 'ACTIVE').upper() elif om_type == "ImplementedBy": diff --git a/pyegeria/models/models.py b/pyegeria/models/models.py index 8ed1a0b4..e968fc37 100644 --- a/pyegeria/models/models.py +++ b/pyegeria/models/models.py @@ -261,6 +261,7 @@ class NotificationSubscriberProperties(PyegeriaModel): description: str | None = None activity_status: str | None = None zone_membership: list[str] | None = None + last_notification: str | None = None effective_from: datetime | None = None effective_to: datetime | None = None @@ -460,7 +461,18 @@ def capture_other_props(cls, data: Any) -> Any: @model_serializer(mode="wrap") def serialize_model(self, handler): result = handler(self) - other_props = result.pop("other_props", None) + # When dumped with by_alias=True (the pattern used everywhere in + # this codebase), the handler's own output already uses the + # aliased key "otherProps" (PyegeriaModel's alias_generator= + # to_camel_case), not the field's Python name "other_props" -- a + # pop keyed on "other_props" alone silently never matched, so + # classification properties beyond "class" (e.g. Taxonomy's + # organizingPrinciple, CanonicalVocabulary's scope) were nested + # under a stray "otherProps"/"other_props" key the real Egeria DTO + # doesn't expect, and got silently dropped server-side. Confirmed + # live 2026-09-18 while fixing PYEGERIA_ISSUES.md's Glossary + # classification bug (Cluster B). + other_props = result.pop("otherProps", None) or result.pop("other_props", None) if other_props: result.update(other_props) return result diff --git a/pyegeria/omvs/collection_manager.py b/pyegeria/omvs/collection_manager.py index ba65b1ea..b92401fa 100644 --- a/pyegeria/omvs/collection_manager.py +++ b/pyegeria/omvs/collection_manager.py @@ -58,6 +58,7 @@ def query_string(params): class CollectionProperties(ReferenceableProperties): class_: Annotated[Literal["CollectionProperties"], Field(alias="class")] + purpose: str | None = None class RootCollectionProperties(CollectionProperties): @@ -143,6 +144,7 @@ class DigitalProductProperties(CollectionProperties): identifier: str | None = None introduction_date: datetime | None = None maturity: str | None = None + current_version: str | None = None service_life: str | None = None next_version_date: datetime | None = None withdrawal_date: datetime | None = None diff --git a/pyegeria/omvs/my_profile.py b/pyegeria/omvs/my_profile.py index 5f0d6d36..d64c2683 100644 --- a/pyegeria/omvs/my_profile.py +++ b/pyegeria/omvs/my_profile.py @@ -1367,7 +1367,7 @@ def create_my_todo(self, todo_name: str, activity_status: str = "REQUESTED", async def _async_create_meeting(self, meeting_name: str, activity_status: str = "REQUESTED", description:Optional[str]=None, situation: Optional[str]=None,priority:Optional[int]=0, - qualified_name: Optional[str] = None) -> str: + qualified_name: Optional[str] = None, objective: Optional[str] = None) -> str: """Create a Meeting person action. Async version. Parameters @@ -1385,6 +1385,10 @@ async def _async_create_meeting(self, meeting_name: str, activity_status: str = qualified_name : Optional[str], optional Use this exact qualified name instead of auto-generating one - see _async_create_my_todo's docstring for why this matters. + objective : Optional[str], optional + The objective of the meeting -- a real `MeetingProperties` field, + not shared by the other Person Action types (ToDo/Review/Note), + by default None Returns ------- GUID @@ -1413,6 +1417,7 @@ async def _async_create_meeting(self, meeting_name: str, activity_status: str = "situation": situation, "priority": priority, "activityStatus": activity_status, + "objective": objective, }, # See _async_create_my_todo's comment - these belong at the # ActionRequestBody level, not inside "properties". diff --git a/pyegeria/view/base_report_formats.py b/pyegeria/view/base_report_formats.py index a94e20cd..31f9617b 100644 --- a/pyegeria/view/base_report_formats.py +++ b/pyegeria/view/base_report_formats.py @@ -99,12 +99,12 @@ # --- GENERATED FORMAT SETS --- # This section is updated by gen-report-specs. generated_format_sets = FormatSetDict({ - 'Activity-Entry-DrE-Advanced': FormatSet(target_type='Activity Entry', heading='Activity-Entry-DrE-Advanced Attributes', description='Auto-generated format for Activity Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), - 'Activity-Entry-DrE-Basic': FormatSet(target_type='Activity Entry', heading='Activity-Entry-DrE-Basic Attributes', description='Auto-generated format for Activity Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Activity-Entry-DrE-Advanced': FormatSet(target_type='Activity Entry', heading='Activity-Entry-DrE-Advanced Attributes', description='Auto-generated format for Activity Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Activity-Entry-DrE-Basic': FormatSet(target_type='Activity Entry', heading='Activity-Entry-DrE-Basic Attributes', description='Auto-generated format for Activity Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), 'Agreement-DrE-Advanced': FormatSet(target_type='Agreement', heading='Agreement-DrE-Advanced Attributes', description='Auto-generated format for Agreement (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Agreement'})), 'Agreement-DrE-Basic': FormatSet(target_type='Agreement', heading='Agreement-DrE-Basic Attributes', description='Auto-generated format for Agreement (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Agreement'})), - 'Blog-Entry-DrE-Advanced': FormatSet(target_type='Blog Entry', heading='Blog-Entry-DrE-Advanced Attributes', description='Auto-generated format for Blog Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), - 'Blog-Entry-DrE-Basic': FormatSet(target_type='Blog Entry', heading='Blog-Entry-DrE-Basic Attributes', description='Auto-generated format for Blog Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Blog-Entry-DrE-Advanced': FormatSet(target_type='Blog Entry', heading='Blog-Entry-DrE-Advanced Attributes', description='Auto-generated format for Blog Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Blog-Entry-DrE-Basic': FormatSet(target_type='Blog Entry', heading='Blog-Entry-DrE-Basic Attributes', description='Auto-generated format for Blog Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), 'Business-Imperative-DrE-Advanced': FormatSet(target_type='Business Imperative', heading='Business-Imperative-DrE-Advanced Attributes', description='Auto-generated format for Business Imperative (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'BusinessImperative'})), 'Business-Imperative-DrE-Basic': FormatSet(target_type='Business Imperative', heading='Business-Imperative-DrE-Basic Attributes', description='Auto-generated format for Business Imperative (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'BusinessImperative'})), 'Campaign-DrE-Advanced': FormatSet(target_type='Campaign', heading='Campaign-DrE-Advanced Attributes', description='Auto-generated format for Campaign (Create, Advanced).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Project Status', key='project_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Status', key='project_status'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'include_only_classified_elements': ['Campaign']})), @@ -163,10 +163,10 @@ 'Design-Pattern-DrE-Basic': FormatSet(target_type='Design Pattern', heading='Design-Pattern-DrE-Basic Attributes', description='Auto-generated format for Design Pattern (Create, Basic).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Benefits', key='benefits'), Column(name='Context', key='context'), Column(name='Forces', key='forces'), Column(name='Liabilities', key='liabilities'), Column(name='Problem Example', key='problem_example'), Column(name='Problem Statement', key='problem_statement'), Column(name='Solution Description', key='solution_description'), Column(name='Solution Example', key='solution_example'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Benefits', key='benefits'), Column(name='Context', key='context'), Column(name='Forces', key='forces'), Column(name='Liabilities', key='liabilities'), Column(name='Problem Example', key='problem_example'), Column(name='Problem Statement', key='problem_statement'), Column(name='Solution Description', key='solution_description'), Column(name='Solution Example', key='solution_example'), Column(name='Usage', key='usage')])], action=ActionParameter(function='SolutionArchitect.find_design_patterns', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Digital-Product-Catalog-DrE-Advanced': FormatSet(target_type='Digital Product Catalog', heading='Digital-Product-Catalog-DrE-Advanced Attributes', description='Auto-generated format for Digital Product Catalog (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'classification_names': ['DigitalProductCatalog']})), 'Digital-Product-Catalog-DrE-Basic': FormatSet(target_type='Digital Product Catalog', heading='Digital-Product-Catalog-DrE-Basic Attributes', description='Auto-generated format for Digital Product Catalog (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'classification_names': ['DigitalProductCatalog']})), - 'Digital-Product-DrE-Advanced': FormatSet(target_type='Digital Product', heading='Digital-Product-DrE-Advanced Attributes', description='Auto-generated format for Digital Product (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Product Type', key='product_type'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Product Status', key='product_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Product Status', key='product_status'), Column(name='Product Type', key='product_type'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalProduct'})), - 'Digital-Product-DrE-Basic': FormatSet(target_type='Digital Product', heading='Digital-Product-DrE-Basic Attributes', description='Auto-generated format for Digital Product (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Product Type', key='product_type'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Product Status', key='product_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Product Status', key='product_status'), Column(name='Product Type', key='product_type'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalProduct'})), - 'Digital-Subscription-DrE-Advanced': FormatSet(target_type='Digital Subscription', heading='Digital-Subscription-DrE-Advanced Attributes', description='Auto-generated format for Digital Subscription (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Subscription Level', key='subscription_level'), Column(name='Support Level', key='support_level'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Subscription Level', key='subscription_level'), Column(name='Support Level', key='support_level'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalSubscription'})), - 'Digital-Subscription-DrE-Basic': FormatSet(target_type='Digital Subscription', heading='Digital-Subscription-DrE-Basic Attributes', description='Auto-generated format for Digital Subscription (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Subscription Level', key='subscription_level'), Column(name='Support Level', key='support_level'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Subscription Level', key='subscription_level'), Column(name='Support Level', key='support_level')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalSubscription'})), + 'Digital-Product-DrE-Advanced': FormatSet(target_type='Digital Product', heading='Digital-Product-DrE-Advanced Attributes', description='Auto-generated format for Digital Product (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalProduct'})), + 'Digital-Product-DrE-Basic': FormatSet(target_type='Digital Product', heading='Digital-Product-DrE-Basic Attributes', description='Auto-generated format for Digital Product (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Current Version', key='current_version'), Column(name='Introduction Date', key='introduction_date'), Column(name='Maturity', key='maturity'), Column(name='Next Version Date', key='next_version_date'), Column(name='Product Name', key='product_name'), Column(name='Service Life', key='service_life'), Column(name='Withdrawal Date', key='withdrawal_date')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalProduct'})), + 'Digital-Subscription-DrE-Advanced': FormatSet(target_type='Digital Subscription', heading='Digital-Subscription-DrE-Advanced Attributes', description='Auto-generated format for Digital Subscription (Create, Advanced).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Support Level', key='support_level'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Support Level', key='support_level'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalSubscription'})), + 'Digital-Subscription-DrE-Basic': FormatSet(target_type='Digital Subscription', heading='Digital-Subscription-DrE-Basic Attributes', description='Auto-generated format for Digital Subscription (Create, Basic).', family='Digital Product Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Support Level', key='support_level'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Agreement Type', key='agreement_type'), Column(name='Support Level', key='support_level')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'DigitalSubscription'})), 'Element-DrE-Advanced': FormatSet(target_type='Element', heading='Element-DrE-Advanced Attributes', description='Auto-generated format for Element (Create, Advanced).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='Element Type Name', key='type_name'), Column(name='Template GUID', key='template_guid'), Column(name='Placeholder Property Values', key='placeholder_property_values'), Column(name='Template Properties', key='template_properties'), Column(name='Generic Initial Classifications', key='initial_classifications'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Effective From', key='effective_from'), Column(name='Effective To', key='effective_to'), Column(name='Effective Time', key='effective_time'), Column(name='Initial Status', key='initial_status', valid_values=['ACTIVE', 'DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'DEPRECATED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Element Type Name', key='type_name'), Column(name='Template GUID', key='template_guid'), Column(name='Placeholder Property Values', key='placeholder_property_values'), Column(name='Template Properties', key='template_properties'), Column(name='Initial Status', key='initial_status', valid_values=['ACTIVE', 'DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'DEPRECATED', 'OTHER']), Column(name='Generic Initial Classifications', key='initial_classifications'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Effective From', key='effective_from'), Column(name='Effective To', key='effective_to'), Column(name='Effective Time', key='effective_time')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Element-DrE-Basic': FormatSet(target_type='Element', heading='Element-DrE-Basic Attributes', description='Auto-generated format for Element (Create, Basic).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='Template GUID', key='template_guid'), Column(name='Placeholder Property Values', key='placeholder_property_values'), Column(name='Template Properties', key='template_properties')]), Format(types=['ALL'], attributes=[Column(name='Template GUID', key='template_guid'), Column(name='Placeholder Property Values', key='placeholder_property_values'), Column(name='Template Properties', key='template_properties')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Embedded-Process-DrE-Advanced': FormatSet(target_type='Embedded Process', heading='Embedded-Process-DrE-Advanced Attributes', description='Auto-generated format for Embedded Process (Create, Advanced).', family='Action Author', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Deployed Implementation Type', key='deployed_impl_type'), Column(name='Namespace Path', key='namespace_path'), Column(name='Resource Name', key='resource_name'), Column(name='Source', key='source'), Column(name='Formula', key='formula'), Column(name='Formula Type', key='formula_type'), Column(name='Expected Behaviour', key='expected_behaviour'), Column(name='Priority', key='priority'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Deployed Implementation Type', key='deployed_impl_type'), Column(name='Namespace Path', key='namespace_path'), Column(name='Resource Name', key='resource_name'), Column(name='Source', key='source'), Column(name='Formula', key='formula'), Column(name='Formula Type', key='formula_type'), Column(name='Expected Behaviour', key='expected_behaviour'), Column(name='Priority', key='priority'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), @@ -241,16 +241,16 @@ 'IT-Profile-Role-DrE-Basic': FormatSet(target_type='IT Profile Role', heading='IT-Profile-Role-DrE-Basic Attributes', description='Auto-generated format for IT Profile Role (Create, Basic).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Scope', key='scope'), Column(name='Version Identifier', key='version_identifier'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Scope', key='scope')])], action=ActionParameter(function='ActorManager.find_actor_roles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ITProfileRole'})), 'IT-Subsystem-DrE-Advanced': FormatSet(target_type='IT Subsystem', heading='IT-Subsystem-DrE-Advanced Attributes', description='Auto-generated format for IT Subsystem (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ITSubsystem'})), 'IT-Subsystem-DrE-Basic': FormatSet(target_type='IT Subsystem', heading='IT-Subsystem-DrE-Basic Attributes', description='Auto-generated format for IT Subsystem (Create, Basic).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ITSubsystem'})), - 'Journal-Entry-DrE-Advanced': FormatSet(target_type='Journal Entry', heading='Journal-Entry-DrE-Advanced Attributes', description='Auto-generated format for Journal Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), - 'Journal-Entry-DrE-Basic': FormatSet(target_type='Journal Entry', heading='Journal-Entry-DrE-Basic Attributes', description='Auto-generated format for Journal Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='Expected Behavior', key='expected_behavior'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Journal-Entry-DrE-Advanced': FormatSet(target_type='Journal Entry', heading='Journal-Entry-DrE-Advanced Attributes', description='Auto-generated format for Journal Entry (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), + 'Journal-Entry-DrE-Basic': FormatSet(target_type='Journal Entry', heading='Journal-Entry-DrE-Basic Attributes', description='Auto-generated format for Journal Entry (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Situation', key='situation')]), Format(types=['ALL'], attributes=[Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Qualified Name', key='qualified_name'), Column(name='Situation', key='situation')])]), 'Kafka-Server-Element-DrE-Advanced': FormatSet(target_type='Kafka Server Element', heading='Kafka-Server-Element-DrE-Advanced Attributes', description='Auto-generated format for Kafka Server Element (Create, Advanced).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='Kafka Server Name', key='kafka_server'), Column(name='Host Name', key='host_name'), Column(name='Port', key='port'), Column(name='Description', key='description')]), Format(types=['ALL'], attributes=[Column(name='Kafka Server Name', key='kafka_server'), Column(name='Host Name', key='host_name'), Column(name='Port', key='port'), Column(name='Description', key='description')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Kafka-Server-Element-DrE-Basic': FormatSet(target_type='Kafka Server Element', heading='Kafka-Server-Element-DrE-Basic Attributes', description='Auto-generated format for Kafka Server Element (Create, Basic).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='Kafka Server Name', key='kafka_server'), Column(name='Host Name', key='host_name'), Column(name='Port', key='port'), Column(name='Description', key='description')]), Format(types=['ALL'], attributes=[Column(name='Kafka Server Name', key='kafka_server'), Column(name='Host Name', key='host_name'), Column(name='Port', key='port'), Column(name='Description', key='description')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'License-Type-DrE-Advanced': FormatSet(target_type='License Type', heading='License-Type-DrE-Advanced Attributes', description='Auto-generated format for License Type (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'LicenseType'})), 'License-Type-DrE-Basic': FormatSet(target_type='License Type', heading='License-Type-DrE-Basic Attributes', description='Auto-generated format for License Type (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'LicenseType'})), 'Like-DrE-Advanced': FormatSet(target_type='Like', heading='Like-DrE-Advanced Attributes', description='Auto-generated format for Like (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Version Identifier', key='current_version'), Column(name='Identifier', key='identifier'), Column(name='Classifications', key='classifications'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Parent Relationship Type Name', key='parent_rel_type_name'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Parent at End1', key='parent_end1'), Column(name='Additional Properties', key='additional_properties'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Status', key='element_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Status', key='element_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category'), Column(name='Version Identifier', key='current_version'), Column(name='Identifier', key='identifier'), Column(name='Classifications', key='classifications'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Parent Relationship Type Name', key='parent_rel_type_name'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Parent at End1', key='parent_end1'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Additional Properties', key='additional_properties'), Column(name='URL', key='url'), Column(name='Supplementary Properties', key='supplementary_properties')])]), 'Like-DrE-Basic': FormatSet(target_type='Like', heading='Like-DrE-Basic Attributes', description='Auto-generated format for Like (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Version Identifier', key='current_version'), Column(name='Identifier', key='identifier'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Version Identifier', key='current_version'), Column(name='Identifier', key='identifier'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='URL', key='url')])]), - 'Meeting-DrE-Advanced': FormatSet(target_type='Meeting', heading='Meeting-DrE-Advanced Attributes', description='Auto-generated format for Meeting (Create, Advanced).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), - 'Meeting-DrE-Basic': FormatSet(target_type='Meeting', heading='Meeting-DrE-Basic Attributes', description='Auto-generated format for Meeting (Create, Basic).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), + 'Meeting-DrE-Advanced': FormatSet(target_type='Meeting', heading='Meeting-DrE-Advanced Attributes', description='Auto-generated format for Meeting (Create, Advanced).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), + 'Meeting-DrE-Basic': FormatSet(target_type='Meeting', heading='Meeting-DrE-Basic Attributes', description='Auto-generated format for Meeting (Create, Basic).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), 'Methodology-DrE-Advanced': FormatSet(target_type='Methodology', heading='Methodology-DrE-Advanced Attributes', description='Auto-generated format for Methodology (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Methodology'})), 'Methodology-DrE-Basic': FormatSet(target_type='Methodology', heading='Methodology-DrE-Basic Attributes', description='Auto-generated format for Methodology (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Methodology'})), 'Namespace-DrE-Advanced': FormatSet(target_type='Namespace', heading='Namespace-DrE-Advanced Attributes', description='Auto-generated format for Namespace (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Namespace'})), @@ -259,8 +259,8 @@ 'Naming-Standard-Rule-DrE-Basic': FormatSet(target_type='Naming Standard Rule', heading='Naming-Standard-Rule-DrE-Basic Attributes', description='Auto-generated format for Naming Standard Rule (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Name Patterns', key='name_patterns'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Name Patterns', key='name_patterns')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'NamingStandardRule'})), 'Naming-Standard-Rule-Set-DrE-Advanced': FormatSet(target_type='Naming Standard Rule Set', heading='Naming-Standard-Rule-Set-DrE-Advanced Attributes', description='Auto-generated format for Naming Standard Rule Set (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'NamingStandardRuleSet'})), 'Naming-Standard-Rule-Set-DrE-Basic': FormatSet(target_type='Naming Standard Rule Set', heading='Naming-Standard-Rule-Set-DrE-Basic Attributes', description='Auto-generated format for Naming Standard Rule Set (Create, Basic).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'NamingStandardRuleSet'})), - 'Note-DrE-Advanced': FormatSet(target_type='Note', heading='Note-DrE-Advanced Attributes', description='Auto-generated format for Note (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Commented On Element', key='commented_on_element'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Commented On Element', key='commented_on_element')])]), - 'Note-DrE-Basic': FormatSet(target_type='Note', heading='Note-DrE-Basic Attributes', description='Auto-generated format for Note (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Commented On Element', key='commented_on_element'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Commented On Element', key='commented_on_element')])]), + 'Note-DrE-Advanced': FormatSet(target_type='Note', heading='Note-DrE-Advanced Attributes', description='Auto-generated format for Note (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Commented On Element', key='commented_on_element'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Commented On Element', key='commented_on_element')])]), + 'Note-DrE-Basic': FormatSet(target_type='Note', heading='Note-DrE-Basic Attributes', description='Auto-generated format for Note (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Commented On Element', key='commented_on_element'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Commented On Element', key='commented_on_element')])]), 'Notification-Type-DrE-Advanced': FormatSet(target_type='Notification Type', heading='Notification-Type-DrE-Advanced Attributes', description='Auto-generated format for Notification Type (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Multiple Notifications Permitted', key='multiple_notifications_permitted'), Column(name='Next Scheduled Notification', key='next_scheduled_notification'), Column(name='Notification Count', key='notification_count'), Column(name='Notification Interval', key='notification_interval'), Column(name='Minimum Notification Interval', key='minimum_notification_interval'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Multiple Notifications Permitted', key='multiple_notifications_permitted'), Column(name='Next Scheduled Notification', key='next_scheduled_notification'), Column(name='Notification Count', key='notification_count'), Column(name='Notification Interval', key='notification_interval'), Column(name='Minimum Notification Interval', key='minimum_notification_interval'), Column(name='Planned Start Date', key='planned_start_date')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'NotificationType'})), 'Notification-Type-DrE-Basic': FormatSet(target_type='Notification Type', heading='Notification-Type-DrE-Basic Attributes', description='Auto-generated format for Notification Type (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Multiple Notifications Permitted', key='multiple_notifications_permitted'), Column(name='Next Scheduled Notification', key='next_scheduled_notification'), Column(name='Notification Count', key='notification_count'), Column(name='Notification Interval', key='notification_interval'), Column(name='Minimum Notification Interval', key='minimum_notification_interval'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Multiple Notifications Permitted', key='multiple_notifications_permitted'), Column(name='Next Scheduled Notification', key='next_scheduled_notification'), Column(name='Notification Count', key='notification_count'), Column(name='Notification Interval', key='notification_interval'), Column(name='Minimum Notification Interval', key='minimum_notification_interval'), Column(name='Planned Start Date', key='planned_start_date')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'NotificationType'})), 'Organization-DrE-Advanced': FormatSet(target_type='Organization', heading='Organization-DrE-Advanced Attributes', description='Auto-generated format for Organization (Create, Advanced).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Team Type', key='team_type'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Team Type', key='team_type'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='ActorManager.find_actor_profiles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Organization'})), @@ -301,8 +301,8 @@ 'Report-Type-DrE-Basic': FormatSet(target_type='Report Type', heading='Report-Type-DrE-Basic Attributes', description='Auto-generated format for Report Type (Create, Basic).', family='Data Designer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ReportType'})), 'Results-Set-DrE-Advanced': FormatSet(target_type='Results Set', heading='Results-Set-DrE-Advanced Attributes', description='Auto-generated format for Results Set (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ResultsSet'})), 'Results-Set-DrE-Basic': FormatSet(target_type='Results Set', heading='Results-Set-DrE-Basic Attributes', description='Auto-generated format for Results Set (Create, Basic).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'ResultsSet'})), - 'Review-DrE-Advanced': FormatSet(target_type='Review', heading='Review-DrE-Advanced Attributes', description='Auto-generated format for Review (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), - 'Review-DrE-Basic': FormatSet(target_type='Review', heading='Review-DrE-Basic Attributes', description='Auto-generated format for Review (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), + 'Review-DrE-Advanced': FormatSet(target_type='Review', heading='Review-DrE-Advanced Attributes', description='Auto-generated format for Review (Create, Advanced).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), + 'Review-DrE-Basic': FormatSet(target_type='Review', heading='Review-DrE-Basic Attributes', description='Auto-generated format for Review (Create, Basic).', family='Feedback', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), 'Risk-DrE-Advanced': FormatSet(target_type='Risk', heading='Risk-DrE-Advanced Attributes', description='Auto-generated format for Risk (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Risk'})), 'Risk-DrE-Basic': FormatSet(target_type='Risk', heading='Risk-DrE-Basic Attributes', description='Auto-generated format for Risk (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Risk'})), 'Root-Collection-DrE-Advanced': FormatSet(target_type='Root Collection', heading='Root-Collection-DrE-Advanced Attributes', description='Auto-generated format for Root Collection (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'RootCollection'})), @@ -339,8 +339,8 @@ 'Solution-Blueprint-DrE-Basic': FormatSet(target_type='Solution Blueprint', heading='Solution-Blueprint-DrE-Basic Attributes', description='Auto-generated format for Solution Blueprint (Create, Basic).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Role List', key='role_list'), Column(name='Solution Components', key='solution_components'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Purpose', key='purpose'), Column(name='Role List', key='role_list'), Column(name='Solution Components', key='solution_components')])], action=ActionParameter(function='SolutionArchitect.find_solution_blueprints', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Solution-Component-DrE-Advanced': FormatSet(target_type='Solution Component', heading='Solution-Component-DrE-Advanced Attributes', description='Auto-generated format for Solution Component (Create, Advanced).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Actors', key='actors'), Column(name='Canonical Name', key='canonical_name'), Column(name='In Information Supply Chain', key='in_supply_chain'), Column(name='In Solution Blueprints', key='in_solution_blueprints'), Column(name='In Solution Components', key='in_components'), Column(name='Planned Deployed Implementation Type', key='planned_deployed_impl_type'), Column(name='Solution Component Type', key='solution_component_type'), Column(name='Solution SubComponents', key='solution_sub_components'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Actors', key='actors'), Column(name='Canonical Name', key='canonical_name'), Column(name='In Information Supply Chain', key='in_supply_chain'), Column(name='In Solution Blueprints', key='in_solution_blueprints'), Column(name='In Solution Components', key='in_components'), Column(name='Planned Deployed Implementation Type', key='planned_deployed_impl_type'), Column(name='Solution Component Type', key='solution_component_type'), Column(name='Solution SubComponents', key='solution_sub_components'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='SolutionArchitect.find_solution_components', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Solution-Component-DrE-Basic': FormatSet(target_type='Solution Component', heading='Solution-Component-DrE-Basic Attributes', description='Auto-generated format for Solution Component (Create, Basic).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Actors', key='actors'), Column(name='In Information Supply Chain', key='in_supply_chain'), Column(name='In Solution Blueprints', key='in_solution_blueprints'), Column(name='In Solution Components', key='in_components'), Column(name='Planned Deployed Implementation Type', key='planned_deployed_impl_type'), Column(name='Solution Component Type', key='solution_component_type'), Column(name='Solution SubComponents', key='solution_sub_components'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Actors', key='actors'), Column(name='In Information Supply Chain', key='in_supply_chain'), Column(name='In Solution Blueprints', key='in_solution_blueprints'), Column(name='In Solution Components', key='in_components'), Column(name='Planned Deployed Implementation Type', key='planned_deployed_impl_type'), Column(name='Solution Component Type', key='solution_component_type'), Column(name='Solution SubComponents', key='solution_sub_components')])], action=ActionParameter(function='SolutionArchitect.find_solution_components', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), - 'Solution-Role-DrE-Advanced': FormatSet(target_type='Solution Role', heading='Solution-Role-DrE-Advanced Attributes', description='Auto-generated format for Solution Role (Create, Advanced).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Role Identifier', key='role_identifier'), Column(name='Role Type', key='role_type'), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Role Identifier', key='role_identifier'), Column(name='Role Type', key='role_type'), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='SolutionArchitect.find_solution_roles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), - 'Solution-Role-DrE-Basic': FormatSet(target_type='Solution Role', heading='Solution-Role-DrE-Basic Attributes', description='Auto-generated format for Solution Role (Create, Basic).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Role Identifier', key='role_identifier'), Column(name='Role Type', key='role_type'), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Role Identifier', key='role_identifier'), Column(name='Role Type', key='role_type'), Column(name='Scope', key='scope'), Column(name='Title', key='title')])], action=ActionParameter(function='SolutionArchitect.find_solution_roles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), + 'Solution-Role-DrE-Advanced': FormatSet(target_type='Solution Role', heading='Solution-Role-DrE-Advanced Attributes', description='Auto-generated format for Solution Role (Create, Advanced).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='SolutionArchitect.find_solution_roles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), + 'Solution-Role-DrE-Basic': FormatSet(target_type='Solution Role', heading='Solution-Role-DrE-Basic Attributes', description='Auto-generated format for Solution Role (Create, Basic).', family='Solution Architect', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Scope', key='scope'), Column(name='Title', key='title'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Role Domain Identifier', key='role_domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Scope', key='scope'), Column(name='Title', key='title')])], action=ActionParameter(function='SolutionArchitect.find_solution_roles', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'Study-Project-DrE-Advanced': FormatSet(target_type='Study Project', heading='Study-Project-DrE-Advanced Attributes', description='Auto-generated format for Study Project (Create, Advanced).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Project Status', key='project_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Status', key='project_status'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'include_only_classified_elements': ['StudyProject']})), 'Study-Project-DrE-Basic': FormatSet(target_type='Study Project', heading='Study-Project-DrE-Basic Attributes', description='Auto-generated format for Study Project (Create, Basic).', family='Projects', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Project Status', key='project_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Actual Completion Date', key='actual_completion_date'), Column(name='Actual Start Date', key='actual_start_date'), Column(name='Mission', key='mission'), Column(name='Planned Completion Date', key='planned_completion_date'), Column(name='Planned Start Date', key='planned_start_date'), Column(name='Priority', key='priority'), Column(name='Project Approach', key='approach'), Column(name='Project Health', key='project_health'), Column(name='Project Identifier', key='project_identifier'), Column(name='Project Management Style', key='management_style'), Column(name='Project Phase', key='project_phase'), Column(name='Project Results Usage', key='results_usage'), Column(name='Project Scope', key='project_scope'), Column(name='Project Status', key='project_status'), Column(name='Project Type', key='project_type', valid_values=['Project', 'Campaign', 'Task', 'PersonalProject', 'StudyProject', 'Experiment']), Column(name='Purposes', key='purposes'), Column(name='Sub-Projects', key='sub_projects'), Column(name='Success Criteria', key='success_criteria')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'include_only_classified_elements': ['StudyProject']})), 'Subject-Area-DrE-Advanced': FormatSet(target_type='Subject Area', heading='Subject-Area-DrE-Advanced Attributes', description='Auto-generated format for Subject Area (Create, Advanced).', family='Collections', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Purpose', key='purpose'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Purpose', key='purpose'), Column(name='User Defined Status', key='user_defined_status'), Column(name='Classifications', key='classifications'), Column(name='Anchor Scope Name', key='anchor_scope_guid'), Column(name='Supplementary Properties', key='supplementary_properties')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'SubjectArea'})), @@ -355,8 +355,8 @@ 'Terms-and-Conditions-DrE-Basic': FormatSet(target_type='Terms and Conditions', heading='Terms-and-Conditions-DrE-Basic Attributes', description='Auto-generated format for Terms and Conditions (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Implementation Description', key='implementation_description'), Column(name='Entitlements', key='entitlements'), Column(name='Obligations', key='obligations'), Column(name='Restrictions', key='restrictions')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'TermsAndConditions'})), 'Threat-DrE-Advanced': FormatSet(target_type='Threat', heading='Threat-DrE-Advanced Attributes', description='Auto-generated format for Threat (Create, Advanced).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Status', key='status'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Glossary Term', key='glossary_term'), Column(name='Is Own Anchor', key='is_own_anchor'), Column(name='Status', key='status'), Column(name='Zone Membership', key='zone_membership'), Column(name='Additional Properties', key='additional_properties'), Column(name='Category', key='category'), Column(name='Confidence Classification', key='confidence_classification', valid_values=['UNCLASSIFIED', 'AD_HOC', 'TRANSACTIONAL', 'AUTHORITATIVE', 'DERIVED', 'OBSOLETE', 'OTHER']), Column(name='Confidentiality Classification', key='confidentiality_classification', valid_values=['UNCLASSIFIED', 'INTERNAL', 'CONFIDENTIAL', 'SENSITIVE', 'RESTRICTED', 'OTHER']), Column(name='Criticality Classification', key='criticality_classification', valid_values=['UNCLASSIFIED', 'MARGINAL', 'IMPORTANT', 'CRITICAL', 'CATASTROPHIC', 'OTHER']), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Identifier', key='identifier'), Column(name='Impact Classification', key='impact_classification', valid_values=['UNCLASSIFIED', 'LOW', 'MEDIUM', 'HIGH', 'OTHER']), Column(name='Legal', key='legal'), Column(name='Policy Management Point', key='policy_management_point'), Column(name='Qualified Name', key='qualified_name'), Column(name='Retention Classification', key='retention_classification', valid_values=['UNCLASSIFIED', 'TEMPORARY', 'PROJECT_LIFETIME', 'TEAM_LIFETIME', 'CONTRACT_LIFETIME', 'REGULATED_LIFETIME', 'TIMEBOXED_LIFETIME', 'OTHER']), Column(name='Security Tags', key='security_tags'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='User Defined Content Status', key='user_defined_content_status'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Threat'})), 'Threat-DrE-Basic': FormatSet(target_type='Threat', heading='Threat-DrE-Basic Attributes', description='Auto-generated format for Threat (Create, Basic).', family='Governance Officer', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Qualified Name', key='qualified_name'), Column(name='GUID', key='guid'), Column(name='Description', key='description'), Column(name='Legal', key='legal'), Column(name='Authors', key='authors'), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage'), Column(name='Version Identifier', key='version_identifier'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Category', key='category')]), Format(types=['ALL'], attributes=[Column(name='Category', key='category'), Column(name='Description', key='description'), Column(name='Display Name', key='display_name'), Column(name='GUID', key='guid'), Column(name='Legal', key='legal'), Column(name='Qualified Name', key='qualified_name'), Column(name='URL', key='url'), Column(name='Version Identifier', key='version_identifier'), Column(name='Authors', key='authors'), Column(name='Content Status', key='content_status', valid_values=['DRAFT', 'PREPARED', 'PROPOSED', 'APPROVED', 'REJECTED', 'ACTIVE', 'DEPRECATED', 'OTHER']), Column(name='Domain Identifier', key='domain_identifier', valid_values=['All Domains', 'Data', 'Privacy', 'Security', 'IT Infrastructure', 'Software Development', 'Corporate', 'Asset Management', 'Other']), Column(name='Implications', key='implications'), Column(name='Importance', key='importance'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Scope', key='scope'), Column(name='Summary', key='summary'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'], spec_params={'metadata_element_type': 'Threat'})), - 'ToDo-DrE-Advanced': FormatSet(target_type='ToDo', heading='ToDo-DrE-Advanced Attributes', description='Auto-generated format for ToDo (Create, Advanced).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), - 'ToDo-DrE-Basic': FormatSet(target_type='ToDo', heading='ToDo-DrE-Basic Attributes', description='Auto-generated format for ToDo (Create, Basic).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER']), Column(name='Requested Start Time', key='requested_start_time'), Column(name='Due Time', key='due_time')])]), + 'ToDo-DrE-Advanced': FormatSet(target_type='ToDo', heading='ToDo-DrE-Advanced Attributes', description='Auto-generated format for ToDo (Create, Advanced).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Effective From', key='effective_from'), Column(name='Effective Time', key='effective_time'), Column(name='Effective To', key='effective_to'), Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), + 'ToDo-DrE-Basic': FormatSet(target_type='ToDo', heading='ToDo-DrE-Basic Attributes', description='Auto-generated format for ToDo (Create, Basic).', family='Actor Manager', formats=[Format(types=['LIST'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])]), Format(types=['ALL'], attributes=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Situation', key='situation'), Column(name='Objective', key='objective'), Column(name='Priority', key='priority'), Column(name='Activity Status', key='activity_status', valid_values=['REQUESTED', 'APPROVED', 'WAITING', 'ACTIVATING', 'IN_PROGRESS', 'PAUSED', 'COMPLETED', 'INVALID', 'IGNORED', 'FAILED', 'CANCELLED', 'ABANDONED', 'OTHER'])])]), 'UC-Catalog-Element-DrE-Advanced': FormatSet(target_type='UC Catalog Element', heading='UC-Catalog-Element-DrE-Advanced Attributes', description='Auto-generated format for UC Catalog Element (Create, Advanced).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')]), Format(types=['ALL'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'UC-Catalog-Element-DrE-Basic': FormatSet(target_type='UC Catalog Element', heading='UC-Catalog-Element-DrE-Basic Attributes', description='Auto-generated format for UC Catalog Element (Create, Basic).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')]), Format(types=['ALL'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), 'UC-Function-Element-DrE-Advanced': FormatSet(target_type='UC Function Element', heading='UC-Function-Element-DrE-Advanced Attributes', description='Auto-generated format for UC Function Element (Create, Advanced).', family='Asset Maker', formats=[Format(types=['LIST'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='UC Schema Name', key='uc_schema'), Column(name='UC Function Name', key='uc_function'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')]), Format(types=['ALL'], attributes=[Column(name='UC Catalog Name', key='uc_catalog'), Column(name='UC Schema Name', key='uc_schema'), Column(name='UC Function Name', key='uc_function'), Column(name='Network Address', key='network_address'), Column(name='Description', key='description'), Column(name='Version Identifier', key='version_identifier')])], action=ActionParameter(function='MetadataExpert.find_metadata_elements_with_string', required_params=['search_string'], optional_params=['sequencing_order', 'sequencing_property', 'page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case', 'classification_names', 'metadata_element_subtypes', 'metadata_element_type'])), diff --git a/sample-data/templates/advanced/Actor Manager/Create_ToDo.md b/sample-data/templates/advanced/Actor Manager/Create_ToDo.md index 175ed91a..ea285632 100644 --- a/sample-data/templates/advanced/Actor Manager/Create_ToDo.md +++ b/sample-data/templates/advanced/Actor Manager/Create_ToDo.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/advanced/Data Designer/Create_Data_Grain.md b/sample-data/templates/advanced/Data Designer/Create_Data_Grain.md index b3148e64..48586806 100644 --- a/sample-data/templates/advanced/Data Designer/Create_Data_Grain.md +++ b/sample-data/templates/advanced/Data Designer/Create_Data_Grain.md @@ -138,7 +138,7 @@ ___ ### Interval > **Input Required**: False -> **Attribute Type**: Simple Float +> **Attribute Type**: Simple Int > **Description**: The time interval in milliseconds between data captures for time-based data grains. diff --git a/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Product.md b/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Product.md index bd3cfb26..ceea58b2 100644 --- a/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Product.md +++ b/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Product.md @@ -55,22 +55,6 @@ ___ > **Description**: The human-readable name of the digital product. -### Product Status -> **Input Required**: False - -> **Attribute Type**: Valid Value - -> **Description**: Lifecycle status of the digital product. - - -### Product Type -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Type of digital product (e.g., Periodic Delta, On Demand, Snapshot). - - ### Service Life > **Input Required**: False diff --git a/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Subscription.md b/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Subscription.md index 7776f944..da1e9fbf 100644 --- a/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Subscription.md +++ b/sample-data/templates/advanced/Digital Product Manager/Create_Digital_Subscription.md @@ -23,14 +23,6 @@ ___ > **Description**: Type of agreement (e.g., service level agreement, licensing agreement, data sharing agreement). -### Subscription Level -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Level or tier of the subscription (e.g., basic, premium, enterprise). - - ### Support Level > **Input Required**: False diff --git a/sample-data/templates/advanced/Feedback/Create_Activity_Entry.md b/sample-data/templates/advanced/Feedback/Create_Activity_Entry.md index 89cb80f6..ea97c169 100644 --- a/sample-data/templates/advanced/Feedback/Create_Activity_Entry.md +++ b/sample-data/templates/advanced/Feedback/Create_Activity_Entry.md @@ -15,14 +15,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/advanced/Feedback/Create_Blog_Entry.md b/sample-data/templates/advanced/Feedback/Create_Blog_Entry.md index a12641ac..8324fa62 100644 --- a/sample-data/templates/advanced/Feedback/Create_Blog_Entry.md +++ b/sample-data/templates/advanced/Feedback/Create_Blog_Entry.md @@ -13,14 +13,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/advanced/Feedback/Create_Journal_Entry.md b/sample-data/templates/advanced/Feedback/Create_Journal_Entry.md index 5e4d7492..e0e42cd6 100644 --- a/sample-data/templates/advanced/Feedback/Create_Journal_Entry.md +++ b/sample-data/templates/advanced/Feedback/Create_Journal_Entry.md @@ -15,14 +15,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/advanced/Feedback/Create_Note.md b/sample-data/templates/advanced/Feedback/Create_Note.md index c485d7d9..35de960b 100644 --- a/sample-data/templates/advanced/Feedback/Create_Note.md +++ b/sample-data/templates/advanced/Feedback/Create_Note.md @@ -47,22 +47,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/advanced/Feedback/Create_Review.md b/sample-data/templates/advanced/Feedback/Create_Review.md index e2708cb3..0d880dc3 100644 --- a/sample-data/templates/advanced/Feedback/Create_Review.md +++ b/sample-data/templates/advanced/Feedback/Create_Review.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/advanced/Governance Officer/Link_Agreement_Terms_and_Conditions.md b/sample-data/templates/advanced/Governance Officer/Link_Agreement_Terms_and_Conditions.md index f6aef8f5..8f3f0dab 100644 --- a/sample-data/templates/advanced/Governance Officer/Link_Agreement_Terms_and_Conditions.md +++ b/sample-data/templates/advanced/Governance Officer/Link_Agreement_Terms_and_Conditions.md @@ -1,7 +1,7 @@ ___ ## Link Agreement Terms and Conditions -> Links an agreement to terms and conditions definition with implementation details. +> Links an agreement to a terms and conditions definition with agreement-item-specific implementation details (item id, effective dates, usage measurements). Entitlements/Obligations/Restrictions live on the Terms and Conditions element itself, not on this relationship. > > **Alternative Names**: Agreement T&C; Agreement Terms & Conditions @@ -21,138 +21,148 @@ ___ > **Description**: The name of the agreement to add an item to. Using qualified names is recommended. -### Membership Rationale +### Label > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Rationale for membership. +> **Description**: A label used to identify or categorise a relationship link. +> **Alternative Labels**: Wire Label -### Membership Status + +### Agreement Item Id > **Input Required**: False -> **Attribute Type**: Valid Value +> **Attribute Type**: Simple + +> **Description**: A user specified agreement item identifier. -> **Description**: The status of adding a member to a collection. -> **Valid Values**: UNKNOWN,DISCOVERED,PROPOSED,IMPORTED,VALIDATED,DEPRECATED,OBSOLETE,OTHER +### Agreement Start Date +> **Input Required**: False + +> **Attribute Type**: Simple -> **Default Value**: PROPOSED +> **Description**: Date when the agreement becomes effective, in ISO 8601 format. -### Membership Type +### Agreement End Date > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Name of the type of membership. +> **Description**: Date when the agreement expires or was terminated, in ISO 8601 format. -### Notes +### Journal Entry > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Notes and observations about the element. +> **Description**: A text entry into a journal. -### Anchor Scope IDs +### Description > **Input Required**: False -> **Attribute Type**: Reference Name List +> **Attribute Type**: Simple -> **Description**: A list of IDs that are anchor scopes for this element. +> **Description**: A description. -### Confidence +### Usage Measurements > **Input Required**: False -> **Attribute Type**: Simple Int +> **Attribute Type**: Dictionary -> **Description**: A percent confidence in the proposed adding of the member. +> **Description**: A dictionary of property:value pairs describing usage measurements. +> | Parameter Name | Parameter Value | +> |---|---| +> | example_key | example_value | -### Expression + +### Effective From > **Input Required**: False > **Attribute Type**: Simple -> **Description**: An expression describing a membership, relationship or classification. +> **Description**: The beginning of when an element is viewable. -### Make Anchor +### Effective Time > **Input Required**: False -> **Attribute Type**: Bool - -> **Description**: Is the element at end2 an anchor to end1? +> **Attribute Type**: Simple -> **Default Value**: false +> **Description**: The time at which an element must be effective in order to be returned by the request. -### Source +### Effective To > **Input Required**: False > **Attribute Type**: Simple -> **Description**: The source of the information. +> **Description**: The ending time at which an element is visible. -### Steward +### External Source GUID > **Input Required**: False -> **Attribute Type**: Simple +> **Attribute Type**: GUID -> **Description**: The identifier of the steward responsible for the element. +> **Description**: The unique identifier of an external source. -### Steward Property Name +### External Source Name > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Property name used to identify the type of the steward. +> **Description**: The name of an external source -### Steward Type Name +### For Duplicate Processing > **Input Required**: False -> **Attribute Type**: Simple +> **Attribute Type**: Bool -> **Description**: The type name of the steward element. +> **Description**: Flag indicating if the request is to support duplicate processing. -### User Defined Status +### For Lineage > **Input Required**: False -> **Attribute Type**: Simple +> **Attribute Type**: Bool -> **Description**: A user-defined status value. Only valid when the primary status is set to OTHER. +> **Description**: Flag indicating if the request is to support lineage. -### Effective Time +### Request ID > **Input Required**: False > **Attribute Type**: Simple -> **Description**: An ISO-8601 string representing the time to use for evaluating effectivity of the elements related to this one. +> **Description**: A user provided or system generated request id for a conversation. -### Effective From +### Anchor Scope IDs > **Input Required**: False -> **Attribute Type**: Simple +> **Attribute Type**: Reference Name List -> **Description**: A string in ISO-8601 format that defines the when an element becomes effective (visible). +> **Description**: A list of IDs that are anchor scopes for this element. -### Effective To +### Make Anchor > **Input Required**: False -> **Attribute Type**: Simple +> **Attribute Type**: Bool + +> **Description**: Is the element at end2 an anchor to end1? -> **Description**: A string in ISO-8601 format that defines the when an element is no longer effective (visible). +> **Default Value**: false ___ diff --git a/sample-data/templates/advanced/Projects/Create_Meeting.md b/sample-data/templates/advanced/Projects/Create_Meeting.md index 19dd42ee..5cbcfd67 100644 --- a/sample-data/templates/advanced/Projects/Create_Meeting.md +++ b/sample-data/templates/advanced/Projects/Create_Meeting.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/advanced/Solution Architect/Create_Solution_Role.md b/sample-data/templates/advanced/Solution Architect/Create_Solution_Role.md index 42d40cd0..ac70952f 100644 --- a/sample-data/templates/advanced/Solution Architect/Create_Solution_Role.md +++ b/sample-data/templates/advanced/Solution Architect/Create_Solution_Role.md @@ -25,24 +25,6 @@ ___ > **Default Value**: All Domains -### Role Identifier -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: A user-assigned identifier for the solution role. - - -### Role Type -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Type of the solution role. Currently must be GovernanceRole. - -> **Default Value**: GovernanceRole - - ### Title > **Input Required**: False diff --git a/sample-data/templates/basic/Actor Manager/Create_ToDo.md b/sample-data/templates/basic/Actor Manager/Create_ToDo.md index 17a15b6a..0873b9e9 100644 --- a/sample-data/templates/basic/Actor Manager/Create_ToDo.md +++ b/sample-data/templates/basic/Actor Manager/Create_ToDo.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/basic/Data Designer/Create_Data_Grain.md b/sample-data/templates/basic/Data Designer/Create_Data_Grain.md index 21d1c4f1..7412d1dd 100644 --- a/sample-data/templates/basic/Data Designer/Create_Data_Grain.md +++ b/sample-data/templates/basic/Data Designer/Create_Data_Grain.md @@ -138,7 +138,7 @@ ___ ### Interval > **Input Required**: False -> **Attribute Type**: Simple Float +> **Attribute Type**: Simple Int > **Description**: The time interval in milliseconds between data captures for time-based data grains. diff --git a/sample-data/templates/basic/Digital Product Manager/Create_Digital_Product.md b/sample-data/templates/basic/Digital Product Manager/Create_Digital_Product.md index 8d8f4b83..1c223531 100644 --- a/sample-data/templates/basic/Digital Product Manager/Create_Digital_Product.md +++ b/sample-data/templates/basic/Digital Product Manager/Create_Digital_Product.md @@ -55,22 +55,6 @@ ___ > **Description**: The human-readable name of the digital product. -### Product Status -> **Input Required**: False - -> **Attribute Type**: Valid Value - -> **Description**: Lifecycle status of the digital product. - - -### Product Type -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Type of digital product (e.g., Periodic Delta, On Demand, Snapshot). - - ### Service Life > **Input Required**: False diff --git a/sample-data/templates/basic/Digital Product Manager/Create_Digital_Subscription.md b/sample-data/templates/basic/Digital Product Manager/Create_Digital_Subscription.md index e505bdcd..0365c18f 100644 --- a/sample-data/templates/basic/Digital Product Manager/Create_Digital_Subscription.md +++ b/sample-data/templates/basic/Digital Product Manager/Create_Digital_Subscription.md @@ -23,14 +23,6 @@ ___ > **Description**: Type of agreement (e.g., service level agreement, licensing agreement, data sharing agreement). -### Subscription Level -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Level or tier of the subscription (e.g., basic, premium, enterprise). - - ### Support Level > **Input Required**: False diff --git a/sample-data/templates/basic/Feedback/Create_Activity_Entry.md b/sample-data/templates/basic/Feedback/Create_Activity_Entry.md index 2908c08b..abd6220e 100644 --- a/sample-data/templates/basic/Feedback/Create_Activity_Entry.md +++ b/sample-data/templates/basic/Feedback/Create_Activity_Entry.md @@ -15,14 +15,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/basic/Feedback/Create_Blog_Entry.md b/sample-data/templates/basic/Feedback/Create_Blog_Entry.md index 752aaab7..df2aef9d 100644 --- a/sample-data/templates/basic/Feedback/Create_Blog_Entry.md +++ b/sample-data/templates/basic/Feedback/Create_Blog_Entry.md @@ -13,14 +13,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/basic/Feedback/Create_Journal_Entry.md b/sample-data/templates/basic/Feedback/Create_Journal_Entry.md index a0e4ef9a..059aab97 100644 --- a/sample-data/templates/basic/Feedback/Create_Journal_Entry.md +++ b/sample-data/templates/basic/Feedback/Create_Journal_Entry.md @@ -15,14 +15,6 @@ ___ > **Alternative Labels**: "Term Name" -### Expected Behavior -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Optionally descibe action to be taken. - - ### Situation > **Input Required**: False diff --git a/sample-data/templates/basic/Feedback/Create_Note.md b/sample-data/templates/basic/Feedback/Create_Note.md index 5a6c4e58..eae8a497 100644 --- a/sample-data/templates/basic/Feedback/Create_Note.md +++ b/sample-data/templates/basic/Feedback/Create_Note.md @@ -47,22 +47,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/basic/Feedback/Create_Review.md b/sample-data/templates/basic/Feedback/Create_Review.md index bfa2d9a4..fd8f274c 100644 --- a/sample-data/templates/basic/Feedback/Create_Review.md +++ b/sample-data/templates/basic/Feedback/Create_Review.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/basic/Governance Officer/Link_Agreement_Terms_and_Conditions.md b/sample-data/templates/basic/Governance Officer/Link_Agreement_Terms_and_Conditions.md index 76944446..ebf62182 100644 --- a/sample-data/templates/basic/Governance Officer/Link_Agreement_Terms_and_Conditions.md +++ b/sample-data/templates/basic/Governance Officer/Link_Agreement_Terms_and_Conditions.md @@ -1,7 +1,7 @@ ___ ## Link Agreement Terms and Conditions -> Links an agreement to terms and conditions definition with implementation details. +> Links an agreement to a terms and conditions definition with agreement-item-specific implementation details (item id, effective dates, usage measurements). Entitlements/Obligations/Restrictions live on the Terms and Conditions element itself, not on this relationship. > > **Alternative Names**: Agreement T&C; Agreement Terms & Conditions @@ -21,40 +21,66 @@ ___ > **Description**: The name of the agreement to add an item to. Using qualified names is recommended. -### Membership Rationale +### Label > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Rationale for membership. +> **Description**: A label used to identify or categorise a relationship link. +> **Alternative Labels**: Wire Label -### Membership Status + +### Agreement Item Id > **Input Required**: False -> **Attribute Type**: Valid Value +> **Attribute Type**: Simple + +> **Description**: A user specified agreement item identifier. + + +### Agreement Start Date +> **Input Required**: False + +> **Attribute Type**: Simple + +> **Description**: Date when the agreement becomes effective, in ISO 8601 format. -> **Description**: The status of adding a member to a collection. -> **Valid Values**: UNKNOWN,DISCOVERED,PROPOSED,IMPORTED,VALIDATED,DEPRECATED,OBSOLETE,OTHER +### Agreement End Date +> **Input Required**: False + +> **Attribute Type**: Simple -> **Default Value**: PROPOSED +> **Description**: Date when the agreement expires or was terminated, in ISO 8601 format. -### Membership Type +### Journal Entry > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Name of the type of membership. +> **Description**: A text entry into a journal. -### Notes +### Description > **Input Required**: False > **Attribute Type**: Simple -> **Description**: Notes and observations about the element. +> **Description**: A description. + + +### Usage Measurements +> **Input Required**: False + +> **Attribute Type**: Dictionary + +> **Description**: A dictionary of property:value pairs describing usage measurements. + +> | Parameter Name | Parameter Value | +> |---|---| +> | example_key | example_value | ___ diff --git a/sample-data/templates/basic/Projects/Create_Meeting.md b/sample-data/templates/basic/Projects/Create_Meeting.md index c8c959e0..61b063a1 100644 --- a/sample-data/templates/basic/Projects/Create_Meeting.md +++ b/sample-data/templates/basic/Projects/Create_Meeting.md @@ -37,22 +37,6 @@ ___ > **Description**: An integer priority for the project. -### Requested Start Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Requested start date/time for a Meeting, ToDo, or Review person action. - - -### Due Time -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Due date/time for a Meeting, ToDo, or Review person action. - - ### Journal Entry > **Input Required**: False diff --git a/sample-data/templates/basic/Solution Architect/Create_Solution_Role.md b/sample-data/templates/basic/Solution Architect/Create_Solution_Role.md index add1f4aa..ffec0c1a 100644 --- a/sample-data/templates/basic/Solution Architect/Create_Solution_Role.md +++ b/sample-data/templates/basic/Solution Architect/Create_Solution_Role.md @@ -25,24 +25,6 @@ ___ > **Default Value**: All Domains -### Role Identifier -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: A user-assigned identifier for the solution role. - - -### Role Type -> **Input Required**: False - -> **Attribute Type**: Simple - -> **Description**: Type of the solution role. Currently must be GovernanceRole. - -> **Default Value**: GovernanceRole - - ### Title > **Input Required**: False diff --git a/scripts/dr_egeria_attribute_consumption_audit.py b/scripts/dr_egeria_attribute_consumption_audit.py new file mode 100644 index 00000000..85a69a47 --- /dev/null +++ b/scripts/dr_egeria_attribute_consumption_audit.py @@ -0,0 +1,301 @@ +#!/usr/bin/env python3 +"""Audit whether every compact-spec command attribute is actually consumed +by the processor code that runs it. + +This closes the gap `scripts/omvs_audit.py` doesn't cover: that script +reconciles pyegeria's OMVS clients against the `.http` ground truth (does the +SDK call the right URL/verb/body?). This script reconciles one layer up -- +does the *Dr.Egeria processor* actually read every attribute its own compact +command spec declares? A spec change (new bundle attribute, new custom +attribute) and the processor code that has to act on it are edited in +different places and can drift silently: the attribute parses fine, renders +fine in the generated template, and the command still reports SUCCESS while +quietly doing nothing with the value. + +Two known real bugs motivated this (see PYEGERIA_ISSUES.md ISSUE-97/98): + + * ISSUE-98 (UNCONSUMED): `Create Digital Product`'s `Product Status`/ + `Product Type`/`Current Version` were declared in the compact spec but + never referenced anywhere in the processor/body-builder code at all. + * ISSUE-97 (CARDINALITY_MISMATCH): `Create Data Structure`'s + `In Data Specification` (and siblings) *were* referenced in the + processor, but the spec declares them singular (`Reference Name`) while + the processor only ever read the plural `guid_list` key -- so the + singular `guid` value it actually got was silently never used. + +This is a static heuristic, not a proof. Read the FINDINGS and go look -- +see "Known limitations" below before trusting a clean run. + +Checks +------ +UNCONSUMED + The attribute's display name never appears, as a quoted string, in any + processor module under `md_processing/v2/` or `md_processing/ + md_processing_utils/`. High confidence: Dr.Egeria's own convention (see + CLAUDE.md) is `attributes.get('', {})...` everywhere, so a + genuinely-consumed attribute's exact display-name string almost always + appears literally somewhere in that tree. + +CARDINALITY_MISMATCH + The attribute has `style` "Reference Name" (singular) or "Reference Name + List" (plural) -- these resolve to a `guid` or `guid_list` key + respectively in the parsed attribute dict (see `processors.py`, + AttributeFirstParser). This check finds every place the attribute's + display name is used as a dict key/lookup and checks whether the code + near it reads the *matching* key. A singular attribute whose code only + ever reads `guid_list` (or vice versa) is the exact ISSUE-97 shape. + +Known limitations (read before trusting a clean run) +------------------------------------------------------ +* UNCONSUMED has false positives for attributes intentionally handled by a + fully generic, name-agnostic path (e.g. iterated from a dict rather than + looked up by literal string) -- rare in this codebase but possible. +* UNCONSUMED can miss a real bug if the attribute name happens to appear as + a *substring* of an unrelated string, or in a comment/docstring rather + than a functional lookup -- it doesn't distinguish those from a real + `attributes.get(...)` call. Treat a "consumed" verdict as "probably fine", + not certain. +* CARDINALITY_MISMATCH only understands the `.get('guid')` / `.get('guid_list')` + / `['guid']` / `['guid_list']` idiom actually used in this codebase. A + processor using some other access pattern won't be checked either way. +* Attributes with no registered processor (parse-only commands, e.g. some + Curation classification types per CLAUDE.md) are reported separately + (UNROUTED) and not checked -- there's deliberately no code to check yet. +* This is a *candidate list*, not a bug list. Confirm each finding by reading + the processor before reporting it as a bug (same discipline as + omvs_audit.py's BODY-check caveat). + +Usage +----- + python scripts/dr_egeria_attribute_consumption_audit.py [--family NAME] + [--command NAME] + [--report PATH] + +Exit status is 1 if any UNCONSUMED or CARDINALITY_MISMATCH finding survives, +so it can gate CI once the existing backlog is triaged (it will NOT be clean +on first run against a live codebase -- this is a discovery tool first). +""" + +from __future__ import annotations + +import argparse +import inspect +import os +import re +import sys +from dataclasses import dataclass, field + +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +if REPO_ROOT not in sys.path: + sys.path.insert(0, REPO_ROOT) + +# Attributes that are handled entirely generically (base Referenceable / +# request-envelope plumbing in processors.py itself, not per-command code) +# and would otherwise dominate the UNCONSUMED list with known-fine noise. +# Confirmed present in the shared `Referenceable`/`Link Command Base` +# bundles (see CLAUDE.md's Compact Attribute Global Namespace note) and +# handled in processors.py/common_md_utils.py's generic envelope builders. +SKIP_ATTRIBUTES = { + "Qualified Name", "GUID", "Display Name", "Description", + "Effective From", "Effective To", "Effective Time", + "For Lineage", "For Duplicate Processing", + "External Source GUID", "External Source Name", "Request ID", + "Merge Update", "Journal Entry", "Status", "Content Status", + "Version Identifier", "Is Own Anchor", "Anchor Scope IDs", "Make Anchor", + "Extended Properties", "Additional Properties", +} + +REFERENCE_STYLES = {"Reference Name": "guid", "Reference Name List": "guid_list"} + + +@dataclass +class Finding: + command: str + attribute: str + style: str + processor: str + kind: str # UNCONSUMED | CARDINALITY_MISMATCH + detail: str + + +@dataclass +class SourceIndex: + files: dict = field(default_factory=dict) # path -> list[str] lines + combined: str = "" + + @classmethod + def build(cls, roots: list[str]) -> "SourceIndex": + idx = cls() + chunks = [] + for root in roots: + for dirpath, _, filenames in os.walk(root): + if "__pycache__" in dirpath: + continue + for fn in filenames: + if not fn.endswith(".py"): + continue + path = os.path.join(dirpath, fn) + try: + with open(path, "r", encoding="utf-8") as fh: + lines = fh.readlines() + except OSError: + continue + idx.files[path] = lines + chunks.append("".join(lines)) + idx.combined = "\n".join(chunks) + return idx + + +def load_dispatcher_and_specs(): + """Import dr_egeria (triggers load_commands()) and build a dispatcher.""" + import md_processing.dr_egeria as dre + from md_processing.md_processing_utils.md_processing_constants import ( + COMMAND_DEFINITIONS, + ) + + dispatcher = dre.setup_dispatcher(None) # registration touches no client + specs = COMMAND_DEFINITIONS.get("Command Specifications", {}) + return dispatcher, specs + + +def find_reference_key_evidence(lines: list[str], attr_name: str) -> tuple[bool, bool]: + """Scan a file's lines for `attr_name` used as a lookup key, and report + whether a `guid` and/or `guid_list` access appears within a small window + around each occurrence. Returns (saw_guid, saw_guid_list).""" + saw_guid = False + saw_guid_list = False + quoted = f"'{attr_name}'" + quoted_dq = f'"{attr_name}"' + for i, line in enumerate(lines): + if quoted not in line and quoted_dq not in line: + continue + window = "".join(lines[max(0, i - 1): i + 4]) + if re.search(r"""\[\s*['"]guid_list['"]\s*\]|\.get\(\s*['"]guid_list['"]""", window): + saw_guid_list = True + if re.search(r"""\[\s*['"]guid['"]\s*\]|\.get\(\s*['"]guid['"]""", window): + saw_guid = True + return saw_guid, saw_guid_list + + +def audit(family_filter: str | None, command_filter: str | None) -> list[Finding]: + dispatcher, specs = load_dispatcher_and_specs() + + v2_root = os.path.join(REPO_ROOT, "md_processing", "v2") + utils_root = os.path.join(REPO_ROOT, "md_processing", "md_processing_utils") + index = SourceIndex.build([v2_root, utils_root]) + + findings: list[Finding] = [] + unrouted: list[str] = [] + + for command_name, spec in specs.items(): + if not isinstance(spec, dict): + continue + if family_filter and spec.get("family") != family_filter: + continue + if command_filter and command_filter.lower() not in command_name.lower(): + continue + + from md_processing.dr_egeria import normalize_command_key + + processor_cls = dispatcher.processors.get(normalize_command_key(command_name)) + if processor_cls is None: + unrouted.append(command_name) + continue + processor_name = processor_cls.__name__ + + for attr in spec.get("Attributes", []): + if not isinstance(attr, dict): + continue + name = attr.get("name") + if not name or name in SKIP_ATTRIBUTES: + continue + style = attr.get("style", "") + + quoted = f"'{name}'" + quoted_dq = f'"{name}"' + if quoted not in index.combined and quoted_dq not in index.combined: + findings.append(Finding( + command=command_name, attribute=name, style=style, + processor=processor_name, kind="UNCONSUMED", + detail="attribute display name not found as a literal anywhere " + "under md_processing/v2/ or md_processing/md_processing_utils/", + )) + continue + + if style in REFERENCE_STYLES: + expected_key = REFERENCE_STYLES[style] + saw_guid_any = False + saw_guid_list_any = False + for path, lines in index.files.items(): + g, gl = find_reference_key_evidence(lines, name) + saw_guid_any = saw_guid_any or g + saw_guid_list_any = saw_guid_list_any or gl + + if expected_key == "guid" and saw_guid_list_any and not saw_guid_any: + findings.append(Finding( + command=command_name, attribute=name, style=style, + processor=processor_name, kind="CARDINALITY_MISMATCH", + detail="spec declares this singular (Reference Name), but code " + "near it only ever reads the plural 'guid_list' key -- " + "the ISSUE-97 shape (parser stores singular refs under " + "'guid', never 'guid_list')", + )) + elif expected_key == "guid_list" and saw_guid_any and not saw_guid_list_any: + findings.append(Finding( + command=command_name, attribute=name, style=style, + processor=processor_name, kind="CARDINALITY_MISMATCH", + detail="spec declares this plural (Reference Name List), but code " + "near it only ever reads the singular 'guid' key -- likely " + "drops all but one selected reference", + )) + + if unrouted: + print(f"# {len(unrouted)} command(s) have no registered processor " + f"(parse-only by design, or a genuine gap -- not checked here):", + file=sys.stderr) + for u in sorted(unrouted): + print(f"# - {u}", file=sys.stderr) + + return findings + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--family", default=None, help="Restrict to one compact-spec family, e.g. 'Digital Products'") + ap.add_argument("--command", default=None, help="Restrict to commands whose name contains this substring") + ap.add_argument("--report", default=None, help="Write the report to this path instead of stdout") + args = ap.parse_args() + + findings = audit(args.family, args.command) + + lines = [] + lines.append(f"# Dr.Egeria attribute-consumption audit -- {len(findings)} finding(s)\n") + if not findings: + lines.append("No candidates found. Remember: this is a heuristic, not a proof " + "(see \"Known limitations\" in the script docstring).\n") + else: + by_kind: dict[str, list[Finding]] = {} + for f in findings: + by_kind.setdefault(f.kind, []).append(f) + for kind in ("UNCONSUMED", "CARDINALITY_MISMATCH"): + group = by_kind.get(kind, []) + if not group: + continue + lines.append(f"\n## {kind} ({len(group)})\n") + for f in sorted(group, key=lambda x: (x.command, x.attribute)): + lines.append(f"- **{f.command}** / `{f.attribute}` (style: {f.style or '?'}, " + f"processor: {f.processor})\n {f.detail}") + + report = "\n".join(lines) + "\n" + if args.report: + with open(args.report, "w", encoding="utf-8") as fh: + fh.write(report) + print(f"Report written to {args.report}") + else: + print(report) + + return 1 if findings else 0 + + +if __name__ == "__main__": + sys.exit(main())