{
  "type": "record",
  "Aspect": {
    "name": "dataHubActionStatus"
  },
  "name": "DataHubActionStatus",
  "namespace": "com.linkedin.pegasus2avro.action",
  "fields": [
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "DataHubActionStageStatus",
          "namespace": "com.linkedin.pegasus2avro.action",
          "fields": [
            {
              "type": {
                "type": "record",
                "name": "AuditStamp",
                "namespace": "com.linkedin.pegasus2avro.common",
                "fields": [
                  {
                    "type": "long",
                    "name": "time",
                    "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
                  },
                  {
                    "java": {
                      "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                    },
                    "type": "string",
                    "name": "actor",
                    "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
                    "Urn": "Urn"
                  },
                  {
                    "java": {
                      "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                    },
                    "type": [
                      "null",
                      "string"
                    ],
                    "name": "impersonator",
                    "default": null,
                    "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
                    "Urn": "Urn"
                  },
                  {
                    "type": [
                      "null",
                      "string"
                    ],
                    "name": "message",
                    "default": null,
                    "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
                  }
                ],
                "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
              },
              "name": "reportedTime",
              "doc": "The time and source of the last update to the status"
            },
            {
              "type": {
                "type": "enum",
                "name": "DataHubActionStageStatusCode",
                "namespace": "com.linkedin.pegasus2avro.action",
                "symbols": [
                  "RUNNING",
                  "SUCCESS",
                  "FAILED",
                  "STOPPED",
                  "CANCELLED"
                ],
                "doc": "Captures the various status codes for different stages of a DataHub Action Pipeline"
              },
              "name": "statusCode",
              "doc": "The status of the stage"
            },
            {
              "type": "long",
              "name": "startTime",
              "doc": "The time the most recent invocation of the stage was started"
            },
            {
              "type": [
                "null",
                "long"
              ],
              "name": "endTime",
              "default": null,
              "doc": "The time the most recent invocation of the stage completed (either\nsuccessfully or unsuccessfully)\nIn the case of a running stage, this field should be null"
            },
            {
              "type": [
                "null",
                "long"
              ],
              "name": "lastSuccess",
              "default": null,
              "doc": "The time the most recent invocation of the stage was successful"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "report",
              "default": null,
              "doc": "Logs from the action stage."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "StructuredExecutionReport",
                  "namespace": "com.linkedin.pegasus2avro.execution",
                  "fields": [
                    {
                      "type": "string",
                      "name": "type",
                      "doc": "The type of the structured report. (e.g. INGESTION_REPORT, TEST_CONNECTION_REPORT, etc.)"
                    },
                    {
                      "type": "string",
                      "name": "serializedValue",
                      "doc": "The serialized value of the structured report"
                    },
                    {
                      "type": "string",
                      "name": "contentType",
                      "doc": "The content-type of the serialized value (e.g. application/json, application/json;gzip etc.)"
                    }
                  ],
                  "doc": "A flexible carrier for structured results of an execution request.\nThe goal is to allow for free flow of structured responses from execution tasks to the orchestrator or observer.\nThe full spectrum of different execution report types is not intended to be modeled by this object."
                }
              ],
              "name": "structuredReport",
              "default": null,
              "doc": "A structured report."
            },
            {
              "type": {
                "type": "map",
                "values": "string"
              },
              "name": "customProperties",
              "default": {},
              "doc": "Additional properties for the pipeline status"
            }
          ]
        }
      ],
      "name": "bootstrap",
      "default": null,
      "doc": "Status of the bootstrap pipeline if applicable"
    },
    {
      "type": [
        "null",
        "com.linkedin.pegasus2avro.action.DataHubActionStageStatus"
      ],
      "name": "live",
      "default": null,
      "doc": "Status of the live pipeline"
    },
    {
      "type": [
        "null",
        "com.linkedin.pegasus2avro.action.DataHubActionStageStatus"
      ],
      "name": "rollback",
      "default": null,
      "doc": "Status of the rollback pipeline if applicable"
    }
  ],
  "doc": "Status about a DataHub Action Pipeline\nThis combines status from all the three stages of the pipeline - bootstrap, live and rollback"
}