Interface ICreateArvoOrchestratorContract<TUri, TName, TVersions, TMetaData>

Interface defining the configuration structure for creating an Arvo Orchestrator Contract. This interface specifies the required properties for initializing a new orchestrator contract.

The base event type for the orchestrator

  • The URI should be unique within your system
  • The type will be used to generate appropriate event type strings
  • Each version must conform to ArvoSemanticVersion format
interface ICreateArvoOrchestratorContract<TUri, TName, TVersions, TMetaData> {
    description?: string;
    metadata?: TMetaData;
    name: TName;
    uri: TUri;
    versions: TVersions;
}

Type Parameters

  • TUri extends string

    The URI type that uniquely identifies the contract

  • TName extends string
  • TVersions extends Record<ArvoSemanticVersion, {
        complete: z.ZodTypeAny;
        init: z.ZodTypeAny;
    }>

    Record of versioned schemas for init and complete events

  • TMetaData extends Record<string, any>

    The metadata of the contract

Properties

description?: string

The optional contract description

metadata?: TMetaData

The optional contract metadata

name: TName
uri: TUri

The unique identifier URI for the contract

versions: TVersions

A record of version-specific schemas for initialization and completion events