{
  "description": "TestWorkflowExecution is the Schema for the workflows API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "TestWorkflowExecution specification",
      "properties": {
        "executionRequest": {
          "additionalProperties": false,
          "description": "TestWorkflowExecutionRequest contains TestWorkflow execution parameters",
          "properties": {
            "config": {
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ],
                "x-kubernetes-int-or-string": true
              },
              "type": [
                "object",
                "null"
              ]
            },
            "disableWebhooks": {
              "description": "whether webhooks should be disabled for this execution",
              "type": [
                "boolean",
                "null"
              ]
            },
            "name": {
              "description": "custom execution name",
              "type": [
                "string",
                "null"
              ]
            },
            "testWorkflowExecutionName": {
              "description": "test workflow execution name started the test workflow execution",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "testWorkflow": {
          "additionalProperties": false,
          "description": "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace.",
          "properties": {
            "name": {
              "description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": "object",
          "x-kubernetes-map-type": "atomic"
        }
      },
      "required": [
        "testWorkflow"
      ],
      "type": "object"
    },
    "status": {
      "additionalProperties": false,
      "description": "TestWorkflowExecutionStatus specification",
      "properties": {
        "generation": {
          "description": "test workflow execution generation",
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        },
        "latestExecution": {
          "additionalProperties": false,
          "description": "INSERT ADDITIONAL STATUS FIELD - define observed state of cluster\nImportant: Run \"make\" to regenerate code after modifying this file",
          "properties": {
            "disableWebhooks": {
              "description": "whether webhooks should be disabled for this execution",
              "type": [
                "boolean",
                "null"
              ]
            },
            "id": {
              "description": "unique execution identifier",
              "type": "string"
            },
            "name": {
              "description": "execution name",
              "type": "string"
            },
            "namespace": {
              "description": "execution namespace",
              "type": [
                "string",
                "null"
              ]
            },
            "number": {
              "description": "sequence number for the execution",
              "format": "int32",
              "type": [
                "integer",
                "null"
              ]
            },
            "output": {
              "description": "additional information from the steps, like referenced executed tests or artifacts",
              "items": {
                "additionalProperties": false,
                "description": "TestWorkflowOutput defines output of TestWorkflow",
                "properties": {
                  "name": {
                    "description": "output kind name",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ref": {
                    "description": "step reference",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "value": {
                    "description": "value returned",
                    "type": [
                      "object",
                      "null"
                    ],
                    "x-kubernetes-preserve-unknown-fields": true
                  }
                },
                "type": "object"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "reports": {
              "description": "generated reports from the steps, like junit",
              "items": {
                "additionalProperties": false,
                "description": "TestWorkflowStepReport contains report of TestWorkflow",
                "properties": {
                  "file": {
                    "description": "file path to full report in artifact storage",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "description": "report kind/type",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ref": {
                    "description": "step reference",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "summary": {
                    "additionalProperties": false,
                    "description": "TestWorkflowStepReportSummary contains report summary of TestWorkflow",
                    "properties": {
                      "duration": {
                        "description": "total duration of all test cases in milliseconds",
                        "format": "int64",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "errored": {
                        "description": "number of error test cases",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "failed": {
                        "description": "number of failed test cases",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "passed": {
                        "description": "number of passed test cases",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "skipped": {
                        "description": "number of skipped test cases",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "tests": {
                        "description": "total number of test cases",
                        "format": "int32",
                        "type": [
                          "integer",
                          "null"
                        ]
                      }
                    },
                    "type": [
                      "object",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "resolvedWorkflow": {
              "x-kubernetes-preserve-unknown-fields": true
            },
            "result": {
              "additionalProperties": false,
              "description": "TestWorkflowResult contains result of TestWorkflow",
              "properties": {
                "duration": {
                  "description": "Go-formatted (human-readable) duration",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "durationMs": {
                  "description": "Duration in milliseconds",
                  "format": "int32",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "finishedAt": {
                  "description": "when the pod has been completed",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "initialization": {
                  "additionalProperties": false,
                  "description": "TestWorkflowStepResult contains step result of TestWorkflow",
                  "properties": {
                    "errorMessage": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "exitCode": {
                      "format": "int64",
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "finishedAt": {
                      "description": "when the container was finished",
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "queuedAt": {
                      "description": "when the container was created",
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "startedAt": {
                      "description": "when the container was started",
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "description": "TestWorkfloStepwStatus has step status of TestWorkflow",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "pausedMs": {
                  "description": "Pause duration in milliseconds",
                  "format": "int32",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "pauses": {
                  "items": {
                    "additionalProperties": false,
                    "description": "TestWorkflowPause defines pause of TestWorkflow",
                    "properties": {
                      "pausedAt": {
                        "description": "when the pause has started",
                        "format": "date-time",
                        "type": "string"
                      },
                      "ref": {
                        "description": "step at which it was paused",
                        "type": "string"
                      },
                      "resumedAt": {
                        "description": "when the pause has ended",
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "pausedAt",
                      "ref"
                    ],
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                },
                "predictedStatus": {
                  "description": "TestWorkflowStatus has status of TestWorkflow",
                  "enum": [
                    "queued",
                    "running",
                    "paused",
                    "passed",
                    "failed",
                    "aborted"
                  ],
                  "type": "string"
                },
                "queuedAt": {
                  "description": "when the pod was created",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "startedAt": {
                  "description": "when the pod has been successfully assigned",
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "description": "TestWorkflowStatus has status of TestWorkflow",
                  "enum": [
                    "queued",
                    "running",
                    "paused",
                    "passed",
                    "failed",
                    "aborted"
                  ],
                  "type": "string"
                },
                "steps": {
                  "additionalProperties": {
                    "additionalProperties": false,
                    "description": "TestWorkflowStepResult contains step result of TestWorkflow",
                    "properties": {
                      "errorMessage": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "exitCode": {
                        "format": "int64",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "finishedAt": {
                        "description": "when the container was finished",
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "queuedAt": {
                        "description": "when the container was created",
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "startedAt": {
                        "description": "when the container was started",
                        "format": "date-time",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "status": {
                        "description": "TestWorkfloStepwStatus has step status of TestWorkflow",
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "totalDuration": {
                  "description": "Go-formatted (human-readable) total duration (incl. pause)",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "totalDurationMs": {
                  "description": "Total duration in milliseconds (incl. pause)",
                  "format": "int32",
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "predictedStatus",
                "status"
              ],
              "type": [
                "object",
                "null"
              ]
            },
            "scheduledAt": {
              "description": "when the execution has been scheduled to run",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "signature": {
              "description": "structured tree of steps",
              "items": {
                "additionalProperties": false,
                "description": "TestWorkflowSignature has signature of TestWorkflow",
                "properties": {
                  "category": {
                    "description": "step category, that may be used as name fallback",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "children": {
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "name": {
                    "description": "step name",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "negative": {
                    "description": "is the step/group meant to be negative",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "optional": {
                    "description": "is the step/group meant to be optional",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "ref": {
                    "description": "step reference",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": "object"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "statusAt": {
              "description": "when the execution result's status has changed last time (queued, passed, failed)",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "testWorkflowExecutionName": {
              "description": "test workflow execution name started the test workflow execution",
              "type": [
                "string",
                "null"
              ]
            },
            "workflow": {
              "x-kubernetes-preserve-unknown-fields": true
            }
          },
          "required": [
            "id",
            "name",
            "workflow"
          ],
          "type": [
            "object",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ]
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}