xRegistry Codegen
  • Home
  • Gallery
← Back

Inkjet → AMQP Producer

inkjet.xreg.json with Avro schema → C# AMQP Producer

xrcg generate --language cs --style amqpproducer -d inkjet.xreg.json --output ./output --projectname Inkjet
📄 Source
📄 Source: inkjet.xreg.json
{
  "messagegroups": {
    "Fabrikam.InkJetPrinter": {
      "envelope": "CloudEvents/1.0",
      "description": "Operational events for a Fabrikam inkjet printer",
      "messages": {
        "Fabrikam.InkJetPrinter.PrintJobStarted": {
          "description": "Event for when a print job starts",
          "envelope": "CloudEvents/1.0",
          "envelopemetadata": {
            "id": {
              "required": true
            },
            "type": {
              "value": "Fabrikam.InkJetPrinter.PrintJobStarted",
              "description": "Event raised when a print job is initiated"
            },
            "source": {
              "type": "uritemplate",
              "description": "source of the event",
              "value": "{tenantid}/{deviceid}"
            },
            "subject": {
              "type": "string",
              "description": "identifier of the print job"
            },
            "time": {
              "required": true
            }
          },
          "dataschemaformat": "Avro/1.11.1",
          "dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PrintJobStartedEventData"
        },
        "Fabrikam.InkJetPrinter.PrintJobCompleted": {
          "description": "Event for when a print job is completed",
          "envelope": "CloudEvents/1.0",
          "envelopemetadata": {
            "id": {
              "required": true
            },
            "type": {
              "value": "Fabrikam.InkJetPrinter.PrintJobCompleted",
              "description": "Event raised when a print job is completed"
            },
            "source": {
              "type": "uritemplate",
              "description": "source of the event",
              "value": "{tenantid}/{deviceid}"
            },
            "subject": {
              "type": "string",
              "description": "identifier of the print job"
            },
            "time": {
              "required": true
            }
          },
          "dataschemaformat": "Avro/1.11.1",
          "dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PrintJobCompletedEventData"
        },
        "Fabrikam.InkJetPrinter.InkLow": {
          "description": "Event for when ink levels are low",
          "envelope": "CloudEvents/1.0",
          "envelopemetadata": {
            "id": {
              "required": true
            },
            "type": {
              "value": "Fabrikam.InkJetPrinter.InkLow",
              "description": "Event raised when ink levels are detected to be low"
            },
            "source": {
              "type": "uritemplate",
              "description": "source of the event",
              "value": "{tenantid}/{deviceid}"
            },
            "subject": {
              "type": "string",
              "description": "identifier of the affected ink cartridge"
            },
            "time": {
              "required": true
            }
          },
          "dataschemaformat": "Avro/1.11.1",
          "dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.InkLowEventData"
        },
        "Fabrikam.InkJetPrinter.PaperJam": {
          "description": "Event for when a paper jam occurs",
          "envelope": "CloudEvents/1.0",
          "envelopemetadata": {
            "id": {
              "required": true
            },
            "type": {
              "value": "Fabrikam.InkJetPrinter.PaperJam",
              "description": "Event raised when a paper jam is detected"
            },
            "source": {
              "type": "uritemplate",
              "description": "source of the event",
              "value": "{tenantid}/{deviceid}"
            },
            "subject": {
              "type": "string",
              "description": "location of the jam within the printer"
            },
            "time": {
              "required": true
            }
          },
          "dataschemaformat": "Avro/1.11.1",
          "dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PaperJamEventData"
        },
        "Fabrikam.InkJetPrinter.MaintenanceRequired": {
          "description": "Event for when the printer requires maintenance",
          "envelope": "CloudEvents/1.0",
          "envelopemetadata": {
            "id": {
              "required": true
            },
            "type": {
              "value": "Fabrikam.InkJetPrinter.MaintenanceRequired",
              "description": "Event raised when maintenance is required for the printer"
            },
            "source": {
              "type": "uritemplate",
              "description": "source of the event",
              "value": "{tenantid}/{deviceid}"
            },
            "subject": {
              "type": "string",
              "description": "type of maintenance required"
            },
            "time": {
              "required": true
            }
          },
          "dataschemaformat": "Avro/1.11.1",
          "dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.MaintenanceRequiredEventData"
        }
      }
    }
  },
  "schemagroups": {
    "Fabrikam.InkJetPrinter": {
      "schemas": {
        "Fabrikam.InkJetPrinter.PrintJobStartedEventData": {
          "format": "Avro/1.11.1",
          "defaultversionid": "1",
          "versions": {
            "1": {
              "format": "Avro/1.11.1",
              "schema": {
                "type": "record",
                "name": "PrintJobStartedEventData",
                "namespace": "Fabrikam.InkJetPrinter",
                "doc": "Data schema for starting a print job",
                "fields": [
                  {
                    "name": "tenantid",
                    "doc": "Tenant identifier",
                    "type": "string"
                  },
                  {
                    "name": "deviceid",
                    "doc": "Device identifier",
                    "type": "string"
                  },
                  {
                    "name": "jobId",
                    "doc": "Unique identifier for the print job",
                    "type": "string"
                  },
                  {
                    "name": "documentName",
                    "doc": "Name of the document being printed",
                    "type": "string"
                  },
                  {
                    "name": "startTime",
                    "doc": "Timestamp when the print job started",
                    "type": "string"
                  }
                ]
              }
            }
          }
        },
        "Fabrikam.InkJetPrinter.PrintJobCompletedEventData": {
          "format": "Avro/1.11.1",
          "defaultversionid": "1",
          "versions": {
            "1": {
              "format": "Avro/1.11.1",
              "schema": {
                "type": "record",
                "name": "PrintJobCompletedEventData",
                "namespace": "Fabrikam.InkJetPrinter",
                "doc": "Data schema for a completed print job",
                "fields": [
                  {
                    "name": "tenantid",
                    "doc": "Tenant identifier",
                    "type": "string"
                  },
                  {
                    "name": "deviceid",
                    "doc": "Device identifier",
                    "type": "string"
                  },
                  {
                    "name": "jobId",
                    "doc": "Unique identifier for the completed print job",
                    "type": "string"
                  },
                  {
                    "name": "documentName",
                    "doc": "Name of the document printed",
                    "type": "string"
                  },
                  {
                    "name": "completionTime",
                    "doc": "Timestamp when the print job was completed",
                    "type": "string"
                  },
                  {
                    "name": "outcome",
                    "doc": "Outcome of the print job (successful, failed, cancelled)",
                    "type": {
                      "type": "enum",
                      "name": "PrintJobOutcome",
                      "symbols": [
                        "Successful",
                        "Failed",
                        "Cancelled"
                      ]
                    }
                  }
                ]
              }
            }
          }
        },
        "Fabrikam.InkJetPrinter.InkLowEventData": {
          "format": "Avro/1.11.1",
          "defaultversionid": "1",
          "versions": {
            "1": {
              "format": "Avro/1.11.1",
              "schema": {
                "type": "record",
                "name": "InkLowEventData",
                "namespace": "Fabrikam.InkJetPrinter",
                "doc": "Data schema for low ink level event",
                "fields": [
                  {
                    "name": "tenantid",
                    "doc": "Tenant identifier",
                    "type": "string"
                  },
                  {
                    "name": "deviceid",
                    "doc": "Device identifier",
                    "type": "string"
                  },
                  {
                    "name": "cartridgeId",
                    "doc": "Identifier of the low ink cartridge",
                    "type": "string"
                  },
                  {
                    "name": "inkColor",
                    "doc": "Color of the ink that is low",
                    "type": {
                      "type": "enum",
                      "name": "InkColor",
                      "symbols": [
                        "Black",
                        "Cyan",
                        "Magenta",
                        "Yellow"
                      ]
                    }
                  },
                  {
                    "name": "remainingLevel",
                    "doc": "Remaining ink level percentage",
                    "type": "int"
                  }
                ]
              }
            }
          }
        },
        "Fabrikam.InkJetPrinter.PaperJamEventData": {
          "format": "Avro/1.11.1",
          "defaultversionid": "1",
          "versions": {
            "1": {
              "format": "Avro/1.11.1",
              "schema": {
                "type": "record",
                "name": "PaperJamEventData",
                "namespace": "Fabrikam.InkJetPrinter",
                "doc": "Data schema for a paper jam event",
                "fields": [
                  {
                    "name": "tenantid",
                    "doc": "Tenant identifier",
                    "type": "string"
                  },
                  {
                    "name": "deviceid",
                    "doc": "Device identifier",
                    "type": "string"
                  },
                  {
                    "name": "jamLocation",
                    "doc": "Location within the printer where the jam occurred",
                    "type": "string"
                  },
                  {
                    "name": "cleared",
                    "doc": "Whether the jam has been cleared (true/false)",
                    "type": "boolean"
                  }
                ]
              }
            }
          }
        },
        "Fabrikam.InkJetPrinter.MaintenanceRequiredEventData": {
          "format": "Avro/1.11.1",
          "defaultversionid": "1",
          "versions": {
            "1": {
              "format": "Avro/1.11.1",
              "schema": {
                "type": "record",
                "name": "MaintenanceRequiredEventData",
                "namespace": "Fabrikam.InkJetPrinter",
                "doc": "Data schema for maintenance required event",
                "fields": [
                  {
                    "name": "tenantid",
                    "doc": "Tenant identifier",
                    "type": "string"
                  },
                  {
                    "name": "deviceid",
                    "doc": "Device identifier",
                    "type": "string"
                  },
                  {
                    "name": "maintenanceType",
                    "doc": "Type of maintenance required (e.g., 'cleaning', 'mechanical adjustment')",
                    "type": {
                      "type": "enum",
                      "name": "MaintenanceType",
                      "symbols": [
                        "Cleaning",
                        "MechanicalAdjustment"
                      ]
                    }
                  },
                  {
                    "name": "urgency",
                    "doc": "Urgency of the maintenance required (e.g., 'immediate', 'routine')",
                    "type": {
                      "type": "enum",
                      "name": "Urgency",
                      "symbols": [
                        "Immediate",
                        "Routine"
                      ]
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}
📁 Files
📁 Output Files
  • ▶InkjetAmqpProducer/
    • ▶src/
      • AmqpProducer.cs
      • EventProducer.cs
      • InkjetAmqpProducer.csproj
    • ▶test/
      • AmqpProducerTest.cs
      • InkjetAmqpProducer.Test.csproj
  • ▶InkjetData/
    • ▶src/
      • ▶InkjetData/
        • ▶Fabrikam/
          • ▶InkJetPrinter/
            • InkColor.cs
            • InkLowEventData.cs
            • MaintenanceRequiredEventData.cs
            • MaintenanceType.cs
            • PaperJamEventData.cs
            • PrintJobCompletedEventData.cs
            • PrintJobOutcome.cs
            • PrintJobStartedEventData.cs
            • Urgency.cs
      • InkjetData.csproj
    • ▶test/
      • InkColorTests.cs
      • InkLowEventDataTests.cs
      • InkjetData.Test.csproj
      • MaintenanceRequiredEventDataTests.cs
      • MaintenanceTypeTests.cs
      • PaperJamEventDataTests.cs
      • PrintJobCompletedEventDataTests.cs
      • PrintJobOutcomeTests.cs
      • PrintJobStartedEventDataTests.cs
      • UrgencyTests.cs
    • InkjetData.sln
  • InkjetAmqpProducer.sln
  • README.md
📄 Output
📄 Select a file to view
Download ZIP
Select a file from the tree to view its contents.