arazzo: 1.0.1 info: title: ZenML Register Model summary: Register a new model in the model control plane and enumerate its versions. description: >- Registers a model in the ZenML model control plane and surfaces the versions tracked under it. The workflow creates the model, confirms it is discoverable in the model listing, and then lists the versions scoped to the new model id. Model versions are created by pipeline runs rather than by a dedicated REST endpoint, so the version step reads whatever versions already exist for the model. Every step spells out its request inline, including the bearer Authorization header, so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: zenmlApi url: ../openapi/zenml-openapi.yml type: openapi workflows: - workflowId: register-model summary: Create a model, confirm it in the listing, and enumerate its versions. description: >- Creates a model with the supplied metadata, lists models filtered by name to confirm registration, and lists the versions scoped to the new model id. inputs: type: object required: - accessToken - modelName properties: accessToken: type: string description: ZenML JWT access token obtained from the login endpoint. modelName: type: string description: The name to register the model under. description: type: string description: Optional description of the model. license: type: string description: Optional license identifier for the model. useCases: type: string description: Optional free-text description of the model's intended use cases. steps: - stepId: createModel description: >- Register the model with the supplied name and optional metadata. operationId: createModel parameters: - name: Authorization in: header value: Bearer $inputs.accessToken requestBody: contentType: application/json payload: name: $inputs.modelName description: $inputs.description license: $inputs.license use_cases: $inputs.useCases successCriteria: - condition: $statusCode == 201 outputs: modelId: $response.body#/id modelName: $response.body#/name - stepId: confirmModel description: >- List models to confirm the newly registered model is discoverable. operationId: listModels parameters: - name: Authorization in: header value: Bearer $inputs.accessToken - name: page in: query value: 1 - name: size in: query value: 100 successCriteria: - condition: $statusCode == 200 outputs: total: $response.body#/total - stepId: listVersions description: >- List the versions tracked under the new model id. operationId: listModelVersions parameters: - name: Authorization in: header value: Bearer $inputs.accessToken - name: model_id in: query value: $steps.createModel.outputs.modelId - name: page in: query value: 1 - name: size in: query value: 20 successCriteria: - condition: $statusCode == 200 outputs: latestVersionId: $response.body#/items/0/id versionCount: $response.body#/total outputs: modelId: $steps.createModel.outputs.modelId modelName: $steps.createModel.outputs.modelName latestVersionId: $steps.listVersions.outputs.latestVersionId