انتقل إلى المحتوى الرئيسي

Variable: AnyGovernanceFramework

const AnyGovernanceFramework: TUnion<[TObject<{ contacts: TWith<TArray<TString>, { description: "Whom to write to about the framework: one to eight role mailboxes, none repeated."; }>; disputeRoute: TWith<TString, { description: "Where an entity, a holder or a verifier takes a dispute."; }>; governingAuthority: TObject<{ contact: TWith<TString, { description: "The authority's address: a role mailbox such as `trust-office@`, never a person's."; }>; name: TWith<TString, { description: "The institution that governs the framework."; }>; }>; name: TWith<TString, { description: "The framework's title."; }>; roles: TArray<TObject<{ admissionCriteria: TArray<TObject<{ enforcedBy: TWith<..., ...>; id: TWith<..., ...>; statement: TWith<..., ...>; }>>; code: TWith<TString, { description: "The role as the platform names it, such as `TRUST_ANCHOR_ADMIN`. An identifier, never prose."; }>; name: TWith<TString, { description: "The role as a person reads it."; }>; }>>; statementLifetimes: TObject<{ anchorConfigurationSeconds: TWith<TInteger, { description: "Lifetime of the trust anchor's own entity configuration, from `iat` to `exp`."; }>; entityConfigurationSeconds: TWith<TInteger, { description: "Lifetime of an admitted entity's entity configuration."; }>; subordinateStatementSeconds: TWith<TInteger, { description: "Lifetime of the trust anchor's subordinate statement about an admitted entity."; }>; }>; version: TInteger; }>, TObject<{ contacts: TWith<TArray<TString>, { description: "Whom to write to about the framework: one to eight role mailboxes, none repeated."; }>; disputeRoute: TWith<TString, { description: "Where an entity, a holder or a verifier takes a dispute."; }>; name: TWith<TString, { description: "The framework's title."; }>; primaryDocument: TObject<{ administeringAuthority: TOptional<TObject<{ contact: TWith<TString, { description: ...; }>; delegatedRole: TWith<TString, { description: ...; }>; did: TOptional<TWith<..., ...>>; jurisdiction: TWith<TString, { description: ...; }>; legalName: TWith<TString, { description: ...; }>; lei: TOptional<TWith<..., ...>>; name: TWith<TString, { description: ...; }>; website: TOptional<TWith<..., ...>>; }>>; controlledDocuments: TArray<TObject<{ category: TWith<TUnsafe<...>, { description: ...; }>; description: TOptional<TString>; digest: TWith<TString, { description: ...; }>; id: TWith<TString, { description: ...; }>; language: TWith<TString, { description: ...; }>; title: TWith<TString, { description: ...; }>; uri: TWith<TString, { description: ...; }>; version: TInteger; }>>; extensions: TUnion<[TObject<{ allowed: TLiteral<...>; paragraphs: TOptional<...>; }>, TObject<{ activation: TWith<..., ...>; allowed: TLiteral<...>; approval: TWith<..., ...>; deactivation: TWith<..., ...>; notification: TWith<..., ...>; paragraphs: TOptional<...>; registration: TWith<..., ...>; }>]>; generalRequirements: TArray<TObject<{ id: TWith<TString, { description: ...; }>; statement: TWith<TString, { description: ...; }>; topic: TUnsafe<... | ... | ... | ...>; }>>; governingAuthority: TObject<{ contact: TWith<TString, { description: "Its address: a role mailbox such as `trust-office@`, never a person's."; }>; did: TOptional<TWith<TString, { description: ...; }>>; jurisdiction: TWith<TString, { description: "Where it is constituted: ISO 3166-1 alpha-2, with an optional subdivision."; }>; legalName: TWith<TString, { description: "Its full legal name, as registered in its jurisdiction."; }>; lei: TOptional<TWith<TString, { description: ...; }>>; name: TWith<TString, { description: "The institution, as a reader names it."; }>; website: TOptional<TWith<TString, { description: ...; }>>; }>; introduction: TObject<{ acknowledgements: TOptional<TArray<TString>>; metamodelVersion: TWith<TUnsafe<"1.0">, { description: "The ToIP Governance Metamodel version the document follows. Only `1.0` exists."; }>; paragraphs: TWith<TArray<TString>, { description: "The background: why the framework exists and where it sits in the ToIP stack."; }>; references: TOptional<TArray<TObject<...>>>; }>; localization: TObject<{ languages: TArray<TString>; translationPolicy: TOptional<TArray<TString>>; translations: TOptional<TArray<TObject<...>>>; }>; objectives: TArray<TObject<{ id: TWith<TString, { description: ...; }>; statement: TString; }>>; principles: TArray<TObject<{ id: TWith<TString, { description: ...; }>; statement: TString; }>>; purpose: TWith<TString, { description: "Section 1.6: what the framework is for, in one paragraph."; }>; revisions: TObject<{ procedure: TWith<TArray<TString>, { description: "How a revision is drafted, reviewed and approved, and how each version gets its DID URL. A published version is never edited; a change is the next version."; }>; publicReviewDays: TOptional<TInteger>; }>; scope: TObject<{ governedArtifacts: TOptional<TArray<TString>>; interactions: TOptional<TArray<TString>>; outOfScope: TOptional<TArray<TString>>; stakeholders: TOptional<TArray<TString>>; }>; terminology: TObject<{ glossaryDocuments: TArray<TString>; paragraphs: TOptional<TArray<TString>>; requirementKeywords: TWith<TLiteral<"bcp14">, { description: "The keyword convention: BCP 14 (RFC 2119 with RFC 8174), so a keyword is one only when capitalised. A constant, because the schema enforces it on every requirement; the field is what makes the document say so."; }>; toipGlossary: TWith<TString, { description: "The ToIP Governance Requirements Glossary the framework adopts."; }>; }>; }>; roles: TArray<TObject<{ admissionCriteria: TArray<TObject<{ enforcedBy: TUnsafe<...>; id: TWith<..., ...>; statement: TWith<..., ...>; }>>; code: TWith<TString, { description: "The role as the platform names it, such as `TRUST_ANCHOR_ADMIN`. An identifier, never prose."; }>; name: TWith<TString, { description: "The role as a person reads it."; }>; }>>; schemaVersion: TWith<TLiteral<2>, { description: "Which shape of the framework this is: `2`. Not the document's version, which is `version`. A version 1 document has no such field."; }>; statementLifetimes: TObject<{ anchorConfigurationSeconds: TWith<TInteger, { description: "Lifetime of the trust anchor's own entity configuration, from `iat` to `exp`."; }>; entityConfigurationSeconds: TWith<TInteger, { description: "Lifetime of an admitted entity's entity configuration."; }>; subordinateStatementSeconds: TWith<TInteger, { description: "Lifetime of the trust anchor's subordinate statement about an admitted entity."; }>; }>; version: TInteger; }>]>

Defined in: packages/contracts/src/schemas/governance-framework-v2.ts:651

A framework document of either schema version. Exactly one branch accepts a given document: version 1 refuses schemaVersion, and version 2 requires it. What the messages that carry a framework hold (T2b), so a reader branches on isGovernanceFrameworkV2 wherever it reads a field the two shapes keep in different places, such as the governing authority.