services-as-software
Version:
Primitives for building AI-powered services that operate as software
158 lines (139 loc) • 4.53 kB
text/typescript
/**
* Services-as-Software Entity Types (Nouns)
*
* Comprehensive entity definitions for AI-delivered productized services.
* Each entity follows the Noun pattern with Properties, Actions, and Events.
*
* Categories:
* - services: Core service entities (ProductizedService, ServiceOffering, ServicePlan, ServiceInstance, ServiceExecution)
* - delivery: AI delivery mechanics (AgentDelivery, AutonomyLevel, EscalationRule, ConfidenceThreshold, HumanHandoff, QualityGate)
* - billing: Billing & commerce (ServiceQuote, ServiceOrder, ServiceSubscription, Usage, Invoice, Payment)
* - operations: Service operations (SLA, SLO, ServiceIncident, SupportTicket, ServiceFeedback, ServiceMetric)
* - customers: Customer entities (ServiceCustomer, ServiceEntitlement, CustomerUsage, CustomerSegment)
* - orchestration: Service orchestration (ServiceWorkflow, WorkflowStep, ServiceTask, ServiceQueue, ServiceWorker)
*
* @packageDocumentation
*/
// =============================================================================
// Services (Core service entities)
// =============================================================================
export {
ProductizedService,
ServiceOffering,
ServicePlan,
ServiceInstance,
ServiceExecution,
ServiceEntities,
ServiceCategories,
} from './services.js'
// =============================================================================
// Delivery (AI delivery mechanics)
// =============================================================================
export {
AgentDelivery,
AutonomyLevel,
EscalationRule,
ConfidenceThreshold,
HumanHandoff,
QualityGate,
DeliveryEntities,
DeliveryCategories,
} from './delivery.js'
// =============================================================================
// Billing (Billing & commerce)
// =============================================================================
export {
ServiceQuote,
ServiceOrder,
ServiceSubscription,
Usage,
Invoice,
Payment,
BillingEntities,
BillingCategories,
} from './billing.js'
// =============================================================================
// Operations (Service operations)
// =============================================================================
export {
SLA,
SLO,
ServiceIncident,
SupportTicket,
ServiceFeedback,
ServiceMetric,
OperationsEntities,
OperationsCategories,
} from './operations.js'
// =============================================================================
// Customers (Customer entities)
// =============================================================================
export {
ServiceCustomer,
ServiceEntitlement,
CustomerUsage,
CustomerSegment,
CustomerEntities,
CustomerCategories,
} from './customers.js'
// =============================================================================
// Orchestration (Service orchestration)
// =============================================================================
export {
ServiceWorkflow,
WorkflowStep,
ServiceTask,
ServiceQueue,
ServiceWorker,
OrchestrationEntities,
OrchestrationCategories,
} from './orchestration.js'
// =============================================================================
// All Entities Collection
// =============================================================================
import { ServiceEntities } from './services.js'
import { DeliveryEntities } from './delivery.js'
import { BillingEntities } from './billing.js'
import { OperationsEntities } from './operations.js'
import { CustomerEntities } from './customers.js'
import { OrchestrationEntities } from './orchestration.js'
/**
* All services-as-software entities organized by category
*/
export const AllServiceEntities = {
services: ServiceEntities,
delivery: DeliveryEntities,
billing: BillingEntities,
operations: OperationsEntities,
customers: CustomerEntities,
orchestration: OrchestrationEntities,
} as const
/**
* All entity category names
*/
export const ServiceEntityCategories = [
'services',
'delivery',
'billing',
'operations',
'customers',
'orchestration',
] as const
export type ServiceEntityCategory = (typeof ServiceEntityCategories)[number]
/**
* Flat list of all entities for quick access
*/
export const Entities = {
// Services
...ServiceEntities,
// Delivery
...DeliveryEntities,
// Billing
...BillingEntities,
// Operations
...OperationsEntities,
// Customers
...CustomerEntities,
// Orchestration
...OrchestrationEntities,
} as const