contoso-erp.xreg.json with JSON Schema schema → C# Kafka Producer
xrcg generate --language cs --style kafkaproducer -d contoso-erp.xreg.json --output ./output --projectname ContosoErp
{
"endpoints": {
"Contoso.ERP.Eventing.Http": {
"usage": [
"producer"
],
"protocol": "HTTP",
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0",
"protocoloptions": {
"deployed": false,
"endpoints": [
{
"uri": "https://erpsystem.com/events"
}
]
}
},
"Contoso.ERP.Eventing.HttpSubscriber": {
"usage": [
"subscriber"
],
"protocol": "HTTP",
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0",
"protocoloptions": {
"deployed": false,
"endpoints": [
{
"uri": "https://erpsystem.com/events/subscriptions"
}
]
}
},
"Contoso.ERP.Eventing.QueueConsumer": {
"channel": "myqueue",
"usage": [
"consumer"
],
"protocol": "AMQP/1.0",
"protocoloptions": {
"node": "queue",
"linkproperties": {
"myprop": "prop"
},
"distributionmode": "copy",
"deployed": false,
"endpoints": [
{
"uri": "amqps://cediscoveryinterop.example.com/queue"
}
]
},
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0"
},
"Contoso.ERP.Eventing.QueueProducer": {
"channel": "myqueue",
"usage": [
"producer"
],
"protocol": "AMQP/1.0",
"protocoloptions": {
"node": "queue",
"linkproperties": {
"myprop": "prop"
},
"distributionmode": "copy",
"deployed": false,
"endpoints": [
{
"uri": "amqps://cediscoveryinterop.example.com/queue"
}
]
},
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0"
},
"Contoso.ERP.Eventing.KafkaProducer": {
"channel": "mytopic",
"usage": [
"producer"
],
"protocol": "KAFKA",
"protocoloptions": {
"topic": "mytopic",
"partition": 0,
"deployed": false,
"endpoints": [
{
"uri": "kafka://cediscoveryinterop.example.com:9093"
}
]
},
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0"
},
"Contoso.ERP.Eventing.KafkaConsumer": {
"channel": "mytopic",
"usage": [
"consumer"
],
"protocol": "KAFKA",
"protocoloptions": {
"topic": "mytopic",
"consumergroup": "mygroup",
"deployed": false,
"endpoints": [
{
"uri": "kafka://cediscoveryinterop.example.com:9093"
}
]
},
"messagegroups": [
"#/messagegroups/Contoso.ERP.ReservationEvents",
"#/messagegroups/Contoso.ERP.PaymentEvents",
"#/messagegroups/Contoso.ERP.ShippingEvents",
"#/messagegroups/Contoso.ERP.InventoryEvents",
"#/messagegroups/Contoso.ERP.ProductEvents",
"#/messagegroups/Contoso.ERP.EmployeeEvents",
"#/messagegroups/Contoso.ERP.PurchasingEvents"
],
"envelope": "CloudEvents/1.0"
}
},
"messagegroups": {
"Contoso.ERP.ReservationEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.ReservationPlaced": {
"description": "A reservation has been placed",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ReservationPlaced"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/orders",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/orderData"
},
"Contoso.ERP.Events.ReservationCancelled": {
"description": "A reservation has been cancelled",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ReservationCancelled"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/orders",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/cancellationData"
},
"Contoso.ERP.Events.ReservationRefunded": {
"description": "A reservation has been refunded",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ReservationRefunded"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/orders",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/refundData"
}
}
},
"Contoso.ERP.PaymentEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.PaymentsReceived": {
"envelope": "CloudEvents/1.0",
"description": "A payment has been received",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.PaymentsReceived"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/payments",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/paymentData"
}
}
},
"Contoso.ERP.ShippingEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.ShipmentAccepted": {
"description": "A shipment has been accepted",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ShipmentAccepted"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/shipments",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/shipmentData"
},
"Contoso.ERP.Events.ShipmentRejected": {
"description": "A shipment has been rejected",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ShipmentRejected"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/shipments",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/shipmentData"
},
"Contoso.ERP.Events.ReturnRequested": {
"description": "A return has been requested",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ReturnRequested"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/returns",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/returnData"
}
}
},
"Contoso.ERP.InventoryEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.InventoryUpdated": {
"description": "Inventory has been updated",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"description": "The id of the inventory update event",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.InventoryUpdated"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/erp/inventory",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/inventoryData"
}
}
},
"Contoso.ERP.ProductEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.ProductAdded": {
"description": "A product has been added",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ProductAdded"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/products",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/productData"
},
"Contoso.ERP.Events.ProductDeleted": {
"description": "A product has been deleted",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ProductDeleted"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/products",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/productDeletionData"
},
"Contoso.ERP.Events.ProductUpdated": {
"description": "A product has been updated",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.ProductUpdated"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/products",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/productUpdatedData"
}
}
},
"Contoso.ERP.EmployeeEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.EmployeeAdded": {
"envelope": "CloudEvents/1.0",
"description": "An employee has been added",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.EmployeeAdded"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/employees",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/employeeData"
},
"Contoso.ERP.Events.EmployeeDeleted": {
"envelope": "CloudEvents/1.0",
"description": "An employee has been deleted",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.EmployeeDeleted"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/employees",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/employeeDeletionData"
},
"Contoso.ERP.Events.EmployeeUpdated": {
"envelope": "CloudEvents/1.0",
"description": "An employee has been updated",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.EmployeeUpdated"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/employees",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/employeeUpdatedData"
}
}
},
"Contoso.ERP.PurchasingEvents": {
"envelope": "CloudEvents/1.0",
"messages": {
"Contoso.ERP.Events.PurchaseOrderCreated": {
"envelope": "CloudEvents/1.0",
"description": "A purchase order has been created",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.PurchaseOrderCreated"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/purchasing",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/purchaseOrderData"
},
"Contoso.ERP.Events.PurchaseOrderUpdated": {
"envelope": "CloudEvents/1.0",
"description": "A purchase order has been updated",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.PurchaseOrderUpdated"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/purchasing",
"required": true
}
},
"dataschemaformat": "JSONSchema/draft-07",
"dataschemauri": "#/schemagroups/Contoso.ERP.Events/schemas/purchaseOrderUpdatedData"
},
"Contoso.ERP.Events.PurchaseOrderDeleted": {
"envelope": "CloudEvents/1.0",
"description": "A purchase order has been deleted",
"envelopemetadata": {
"id": {
"type": "string",
"required": true
},
"type": {
"type": "string",
"value": "Contoso.ERP.Events.PurchaseOrderDeleted"
},
"time": {
"type": "datetime",
"required": true
},
"source": {
"type": "uritemplate",
"value": "/{tenantid}/erp/purchasing",
"required": true
}
}
}
}
}
},
"schemagroups": {
"Contoso.ERP.Events": {
"schemas": {
"orderData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"orderId": {
"type": "string",
"minLength": 1
},
"customerId": {
"type": "string",
"minLength": 1
},
"total": {
"type": "number",
"minimum": 0
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"minLength": 1
},
"quantity": {
"type": "number",
"minimum": 0
},
"price": {
"type": "number",
"minimum": 0
}
}
}
}
}
}
}
}
},
"paymentData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"transactionId": {
"type": "string"
},
"orderId": {
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
},
"status": {
"type": "string"
},
"paymentmethod": {
"type": "string"
}
}
}
}
}
},
"shipmentData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"trackingnumber": {
"type": "string"
},
"orderId": {
"type": "string"
},
"status": {
"type": "string"
},
"courierName": {
"type": "string"
}
}
}
}
}
},
"cancellationData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"orderId": {
"type": "string"
},
"reason": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"refundData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"orderId": {
"type": "string"
},
"amount": {
"type": "number"
},
"reason": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"inventoryData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
},
"quantity": {
"type": "number"
},
"location": {
"type": "string"
}
}
}
}
}
},
"productData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"type": "number"
},
"category": {
"type": "string"
}
}
}
}
}
},
"productDeletionData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product id"
},
"reason": {
"type": "string",
"description": "The reason for deletion"
}
}
}
}
}
},
"productUpdatedData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product id"
},
"name": {
"type": "string",
"description": "The product name"
},
"description": {
"type": "string",
"description": "The product description"
},
"price": {
"type": "number",
"description": "The product price"
},
"category": {
"type": "string",
"description": "The product category"
}
}
}
}
}
},
"employeeData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"employeeId": {
"type": "string",
"description": "The employee id"
},
"name": {
"type": "string",
"description": "The employee name"
},
"email": {
"type": "string",
"format": "email",
"description": "The employee email"
},
"position": {
"type": "string"
},
"department": {
"type": "string"
}
}
}
}
}
},
"employeeDeletionData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"employeeId": {
"type": "string"
},
"reason": {
"type": "string"
}
}
}
}
}
},
"employeeUpdatedData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"employeeId": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"position": {
"type": "string"
},
"department": {
"type": "string"
}
}
}
}
}
},
"purchaseOrderData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"purchaseOrderId": {
"type": "string"
},
"supplierName": {
"type": "string"
},
"totalCost": {
"type": "number"
},
"status": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": {
"type": "string"
},
"quantity": {
"type": "number"
},
"unitCost": {
"type": "number"
}
}
}
}
}
}
}
}
},
"purchaseOrderUpdatedData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"purchaseOrderId": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"purchaseOrderDeletionData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"purchaseOrderId": {
"type": "string"
},
"reason": {
"type": "string"
}
}
}
}
}
},
"returnData": {
"format": "JSONSchema/draft-07",
"versions": {
"1": {
"format": "JSONSchema/draft-07",
"schema": {
"type": "object",
"properties": {
"returnId": {
"type": "string"
},
"orderId": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"orderId": {
"type": "string"
},
"productId": {
"type": "string"
},
"quantity": {
"type": "number"
}
}
}
}
}
}
}
}
}
}
}
}
}
Select a file from the tree to view its contents.