[
  "null",
  {
    "type": "record",
    "name": "MetadataChangeEvent",
    "namespace": "com.linkedin.pegasus2avro.mxe",
    "fields": [
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "KafkaAuditHeader",
            "namespace": "com.linkedin.events",
            "fields": [
              {
                "compliance": [
                  {
                    "policy": "EVENT_TIME"
                  }
                ],
                "type": "long",
                "name": "time",
                "doc": "The time at which the event was emitted into kafka."
              },
              {
                "compliance": "NONE",
                "type": "string",
                "name": "server",
                "doc": "The fully qualified name of the host from which the event is being emitted."
              },
              {
                "compliance": "NONE",
                "type": [
                  "null",
                  "string"
                ],
                "name": "instance",
                "default": null,
                "doc": "The instance on the server from which the event is being emitted. e.g. i001"
              },
              {
                "compliance": "NONE",
                "type": "string",
                "name": "appName",
                "doc": "The name of the application from which the event is being emitted. see go/appname"
              },
              {
                "compliance": "NONE",
                "type": {
                  "type": "fixed",
                  "name": "UUID",
                  "namespace": "com.linkedin.events",
                  "size": 16
                },
                "name": "messageId",
                "doc": "A unique identifier for the message"
              },
              {
                "compliance": "NONE",
                "type": [
                  "null",
                  "int"
                ],
                "name": "auditVersion",
                "default": null,
                "doc": "The version that is being used for auditing. In version 0, the audit trail buckets events into 10 minute audit windows based on the EventHeader timestamp. In version 1, the audit trail buckets events as follows: if the schema has an outer KafkaAuditHeader, use the outer audit header timestamp for bucketing; else if the EventHeader has an inner KafkaAuditHeader use that inner audit header's timestamp for bucketing"
              },
              {
                "compliance": "NONE",
                "type": [
                  "null",
                  "string"
                ],
                "name": "fabricUrn",
                "default": null,
                "doc": "The fabricUrn of the host from which the event is being emitted. Fabric Urn in the format of urn:li:fabric:{fabric_name}. See go/fabric."
              },
              {
                "compliance": "NONE",
                "type": [
                  "null",
                  "string"
                ],
                "name": "clusterConnectionString",
                "default": null,
                "doc": "This is a String that the client uses to establish some kind of connection with the Kafka cluster. The exact format of it depends on specific versions of clients and brokers. This information could potentially identify the fabric and cluster with which the client is producing to or consuming from."
              }
            ],
            "doc": "This header records information about the context of an event as it is emitted into kafka and is intended to be used by the kafka audit application.  For more information see go/kafkaauditheader"
          }
        ],
        "name": "auditHeader",
        "default": null,
        "doc": "Kafka audit header. See go/kafkaauditheader for more info."
      },
      {
        "type": [
          {
            "type": "record",
            "Entity": {
              "keyAspect": "chartKey",
              "name": "chart"
            },
            "name": "ChartSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.ChartUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "chartKey"
                      },
                      "name": "ChartKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 4.0,
                            "fieldName": "tool",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "dashboardTool",
                          "doc": "The name of the dashboard tool such as looker, redash etc."
                        },
                        {
                          "type": "string",
                          "name": "chartId",
                          "doc": "Unique id for the chart. This id should be globally unique for a dashboarding tool even when there are multiple deployments of it. As an example, chart URL could be used here for Looker such as 'looker.linkedin.com/looks/1234'"
                        }
                      ],
                      "doc": "Key for a Chart"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "chartInfo"
                      },
                      "name": "ChartInfo",
                      "namespace": "com.linkedin.pegasus2avro.chart",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "title",
                          "doc": "Title of the chart"
                        },
                        {
                          "Searchable": {},
                          "type": "string",
                          "name": "description",
                          "doc": "Detailed description about the chart"
                        },
                        {
                          "type": {
                            "type": "record",
                            "name": "ChangeAuditStamps",
                            "namespace": "com.linkedin.pegasus2avro.common",
                            "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."
                                    },
                                    {
                                      "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."
                                    }
                                  ],
                                  "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": "created",
                                "default": {
                                  "actor": "urn:li:corpuser:unknown",
                                  "impersonator": null,
                                  "time": 0
                                },
                                "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                              },
                              {
                                "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                                "name": "lastModified",
                                "default": {
                                  "actor": "urn:li:corpuser:unknown",
                                  "impersonator": null,
                                  "time": 0
                                },
                                "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                              },
                              {
                                "type": [
                                  "null",
                                  "com.linkedin.pegasus2avro.common.AuditStamp"
                                ],
                                "name": "deleted",
                                "default": null,
                                "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                              }
                            ],
                            "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into various lifecycle stages, and who acted to move it into those lifecycle stages. The recommended best practice is to include this record in your record schema, and annotate its fields as @readOnly in your resource. See https://github.com/linkedin/rest.li/wiki/Validation-in-Rest.li#restli-validation-annotations"
                          },
                          "name": "lastModified",
                          "doc": "Captures information about who created/last modified/deleted this chart and when"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "chartUrl",
                          "default": null,
                          "doc": "URL for the chart. This could be used as an external link on DataHub to allow users access/view the chart"
                        },
                        {
                          "Relationship": {
                            "/*/string": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "Consumes"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": [
                                "string"
                              ]
                            }
                          ],
                          "name": "inputs",
                          "default": null,
                          "doc": "Data sources for the chart"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "KEYWORD",
                            "filterNameOverride": "Chart Type"
                          },
                          "type": [
                            "null",
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "BAR": "Chart showing a Bar chart",
                                "PIE": "Chart showing a Pie chart",
                                "SCATTER": "Chart showing a Scatter plot",
                                "TABLE": "Chart showing a table",
                                "TEXT": "Chart showing Markdown formatted text"
                              },
                              "name": "ChartType",
                              "namespace": "com.linkedin.pegasus2avro.chart",
                              "symbols": [
                                "BAR",
                                "PIE",
                                "SCATTER",
                                "TABLE",
                                "TEXT",
                                "LINE",
                                "AREA",
                                "HISTOGRAM",
                                "BOX_PLOT",
                                "WORD_CLOUD",
                                "COHORT"
                              ],
                              "doc": "The various types of charts"
                            }
                          ],
                          "name": "type",
                          "default": null,
                          "doc": "Type of the chart"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "KEYWORD",
                            "filterNameOverride": "Access Level"
                          },
                          "type": [
                            "null",
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "PRIVATE": "Private availability to certain set of users",
                                "PUBLIC": "Publicly available access level"
                              },
                              "name": "AccessLevel",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "symbols": [
                                "PUBLIC",
                                "PRIVATE"
                              ],
                              "doc": "The various access levels"
                            }
                          ],
                          "name": "access",
                          "default": null,
                          "doc": "Access level for the chart"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "lastRefreshed",
                          "default": null,
                          "doc": "The time when this chart last refreshed"
                        }
                      ],
                      "doc": "Information about a chart"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "chartQuery"
                      },
                      "name": "ChartQuery",
                      "namespace": "com.linkedin.pegasus2avro.chart",
                      "fields": [
                        {
                          "type": "string",
                          "name": "rawQuery",
                          "doc": "Raw query to build a chart from input datasets"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldName": "queryType",
                            "fieldType": "KEYWORD",
                            "filterNameOverride": "Query Type"
                          },
                          "type": {
                            "type": "enum",
                            "symbolDocs": {
                              "LOOKML": "LookML queries",
                              "SQL": "SQL type queries"
                            },
                            "name": "ChartQueryType",
                            "namespace": "com.linkedin.pegasus2avro.chart",
                            "symbols": [
                              "LOOKML",
                              "SQL"
                            ]
                          },
                          "name": "type",
                          "doc": "Chart query type"
                        }
                      ],
                      "doc": "Information for chart query which is used for getting data of the chart"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableChartProperties"
                      },
                      "name": "EditableChartProperties",
                      "namespace": "com.linkedin.pegasus2avro.chart",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "Searchable": {
                            "fieldName": "editedDescription",
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Edited documentation of the chart "
                        }
                      ],
                      "doc": "Stores editable changes made to properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "ownership"
                      },
                      "name": "Ownership",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "Owner",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "fields": [
                                {
                                  "Relationship": {
                                    "entityTypes": [
                                      "corpuser",
                                      "corpGroup"
                                    ],
                                    "name": "OwnedBy"
                                  },
                                  "Searchable": {
                                    "addToFilters": true,
                                    "fieldName": "owners",
                                    "fieldType": "URN",
                                    "filterNameOverride": "Owned By",
                                    "hasValuesFieldName": "hasOwners",
                                    "queryByDefault": false
                                  },
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                                  },
                                  "type": "string",
                                  "name": "owner",
                                  "doc": "Owner URN, e.g. urn:li:corpuser:ldap, urn:li:corpGroup:group_name, and urn:li:multiProduct:mp_name\n(Caveat: only corpuser is currently supported in the frontend.)"
                                },
                                {
                                  "type": {
                                    "type": "enum",
                                    "symbolDocs": {
                                      "BUSINESS_OWNER": "A person or group who is responsible for logical, or business related, aspects of the asset.",
                                      "CONSUMER": "A person, group, or service that consumes the data\nDeprecated! Use TECHNICAL_OWNER or BUSINESS_OWNER instead.",
                                      "DATAOWNER": "A person or group that is owning the data\nDeprecated! Use TECHNICAL_OWNER instead.",
                                      "DATA_STEWARD": "A steward, expert, or delegate responsible for the asset.",
                                      "DELEGATE": "A person or a group that overseas the operation, e.g. a DBA or SRE.\nDeprecated! Use TECHNICAL_OWNER instead.",
                                      "DEVELOPER": "A person or group that is in charge of developing the code\nDeprecated! Use TECHNICAL_OWNER instead.",
                                      "NONE": "No specific type associated to the owner.",
                                      "PRODUCER": "A person, group, or service that produces/generates the data\nDeprecated! Use TECHNICAL_OWNER instead.",
                                      "STAKEHOLDER": "A person or a group that has direct business interest\nDeprecated! Use TECHNICAL_OWNER, BUSINESS_OWNER, or STEWARD instead.",
                                      "TECHNICAL_OWNER": "person or group who is responsible for technical aspects of the asset."
                                    },
                                    "deprecatedSymbols": {
                                      "CONSUMER": true,
                                      "DATAOWNER": true,
                                      "DELEGATE": true,
                                      "DEVELOPER": true,
                                      "PRODUCER": true,
                                      "STAKEHOLDER": true
                                    },
                                    "name": "OwnershipType",
                                    "namespace": "com.linkedin.pegasus2avro.common",
                                    "symbols": [
                                      "TECHNICAL_OWNER",
                                      "BUSINESS_OWNER",
                                      "DATA_STEWARD",
                                      "NONE",
                                      "DEVELOPER",
                                      "DATAOWNER",
                                      "DELEGATE",
                                      "PRODUCER",
                                      "CONSUMER",
                                      "STAKEHOLDER"
                                    ],
                                    "doc": "Asset owner types"
                                  },
                                  "name": "type",
                                  "doc": "The type of the ownership"
                                },
                                {
                                  "type": [
                                    "null",
                                    {
                                      "type": "record",
                                      "name": "OwnershipSource",
                                      "namespace": "com.linkedin.pegasus2avro.common",
                                      "fields": [
                                        {
                                          "type": {
                                            "type": "enum",
                                            "symbolDocs": {
                                              "AUDIT": "Auditing system or audit logs",
                                              "DATABASE": "Database, e.g. GRANTS table",
                                              "FILE_SYSTEM": "File system, e.g. file/directory owner",
                                              "ISSUE_TRACKING_SYSTEM": "Issue tracking system, e.g. Jira",
                                              "MANUAL": "Manually provided by a user",
                                              "OTHER": "Other sources",
                                              "SERVICE": "Other ownership-like service, e.g. Nuage, ACL service etc",
                                              "SOURCE_CONTROL": "SCM system, e.g. GIT, SVN"
                                            },
                                            "name": "OwnershipSourceType",
                                            "namespace": "com.linkedin.pegasus2avro.common",
                                            "symbols": [
                                              "AUDIT",
                                              "DATABASE",
                                              "FILE_SYSTEM",
                                              "ISSUE_TRACKING_SYSTEM",
                                              "MANUAL",
                                              "SERVICE",
                                              "SOURCE_CONTROL",
                                              "OTHER"
                                            ]
                                          },
                                          "name": "type",
                                          "doc": "The type of the source"
                                        },
                                        {
                                          "type": [
                                            "null",
                                            "string"
                                          ],
                                          "name": "url",
                                          "default": null,
                                          "doc": "A reference URL for the source"
                                        }
                                      ],
                                      "doc": "Source/provider of the ownership information"
                                    }
                                  ],
                                  "name": "source",
                                  "default": null,
                                  "doc": "Source information for the ownership"
                                }
                              ],
                              "doc": "Ownership information"
                            }
                          },
                          "name": "owners",
                          "doc": "List of owners of the entity."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "Audit stamp containing who last modified the record and when. A value of 0 in the time field indicates missing data."
                        }
                      ],
                      "doc": "Ownership information of an entity."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "status"
                      },
                      "name": "Status",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "BOOLEAN"
                          },
                          "type": "boolean",
                          "name": "removed",
                          "default": false,
                          "doc": "Whether the entity has been removed (soft-deleted)."
                        }
                      ],
                      "doc": "The lifecycle status metadata of an entity, e.g. dataset, metric, feature, etc.\nThis aspect is used to represent soft deletes conventionally."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "globalTags"
                      },
                      "name": "GlobalTags",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "TagAssociation",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "fields": [
                                {
                                  "Relationship": {
                                    "entityTypes": [
                                      "tag"
                                    ],
                                    "name": "TaggedWith"
                                  },
                                  "Searchable": {
                                    "addToFilters": true,
                                    "fieldName": "tags",
                                    "fieldType": "URN",
                                    "filterNameOverride": "Tag",
                                    "hasValuesFieldName": "hasTags"
                                  },
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.TagUrn"
                                  },
                                  "type": "string",
                                  "name": "tag",
                                  "doc": "Urn of the applied tag"
                                }
                              ],
                              "doc": "Properties of an applied tag. For now, just an Urn. In the future we can extend this with other properties, e.g.\npropagation parameters."
                            }
                          },
                          "name": "tags",
                          "doc": "Tags associated with a given entity"
                        }
                      ],
                      "doc": "Tag aspect used for applying tags to an entity"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "browsePaths"
                      },
                      "name": "BrowsePaths",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "fieldName": "browsePaths",
                              "fieldType": "BROWSE_PATH"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "paths",
                          "doc": "A list of valid browse paths for the entity.\n\nBrowse paths are expected to be forward slash-separated strings. For example: 'prod/snowflake/datasetName'"
                        }
                      ],
                      "doc": "Shared aspect containing Browse Paths to be indexed for an entity."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryTerms"
                      },
                      "name": "GlossaryTerms",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "GlossaryTermAssociation",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "fields": [
                                {
                                  "Relationship": {
                                    "entityTypes": [
                                      "glossaryTerm"
                                    ],
                                    "name": "TermedWith"
                                  },
                                  "Searchable": {
                                    "addToFilters": true,
                                    "fieldName": "glossaryTerms",
                                    "fieldType": "URN",
                                    "filterNameOverride": "Glossary Term",
                                    "hasValuesFieldName": "hasGlossaryTerms"
                                  },
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
                                  },
                                  "type": "string",
                                  "name": "urn",
                                  "doc": "Urn of the applied glossary term"
                                }
                              ],
                              "doc": "Properties of an applied glossary term."
                            }
                          },
                          "name": "terms",
                          "doc": "The related business terms"
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "auditStamp",
                          "doc": "Audit stamp containing who reported the related business term"
                        }
                      ],
                      "doc": "Related business terms information"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "institutionalMemory"
                      },
                      "name": "InstitutionalMemory",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "InstitutionalMemoryMetadata",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "fields": [
                                {
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.url.Url",
                                    "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                                  },
                                  "type": "string",
                                  "name": "url",
                                  "doc": "Link to an engineering design document or a wiki page."
                                },
                                {
                                  "type": "string",
                                  "name": "description",
                                  "doc": "Description of the link."
                                },
                                {
                                  "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                                  "name": "createStamp",
                                  "doc": "Audit stamp associated with creation of this record"
                                }
                              ],
                              "doc": "Metadata corresponding to a record of institutional memory."
                            }
                          },
                          "name": "elements",
                          "doc": "List of records that represent institutional memory of an entity. Each record consists of a link, description, creator and timestamps associated with that record."
                        }
                      ],
                      "doc": "Institutional memory of an entity. This is a way to link to relevant documentation and provide description of the documentation. Institutional or tribal knowledge is very important for users to leverage the entity."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataPlatformInstance"
                      },
                      "name": "DataPlatformInstance",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "URN",
                            "filterNameOverride": "Platform"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Data Platform"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldName": "platformInstance",
                            "fieldType": "URN",
                            "filterNameOverride": "Platform Instance"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "instance",
                          "default": null,
                          "doc": "Instance of the data platform (e.g. db instance)"
                        }
                      ],
                      "doc": "The specific instance of the data platform that this entity belongs to"
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the chart. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific Chart entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "corpGroupKey",
              "name": "corpGroup"
            },
            "name": "CorpGroupSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.CorpGroupUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "corpGroupKey"
                      },
                      "name": "CorpGroupKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "The URL-encoded name of the AD/LDAP group. Serves as a globally unique identifier within DataHub."
                        }
                      ],
                      "doc": "Key for a CorpGroup"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "EntityUrns": [
                          "com.linkedin.pegasus2avro.common.CorpGroupUrn"
                        ],
                        "name": "corpGroupInfo"
                      },
                      "name": "CorpGroupInfo",
                      "namespace": "com.linkedin.pegasus2avro.identity",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "displayName",
                          "default": null,
                          "doc": "The name of the group."
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "email",
                          "default": null,
                          "doc": "email of this group"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "corpuser"
                              ],
                              "name": "OwnedBy"
                            }
                          },
                          "deprecated": true,
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "admins",
                          "doc": "owners of this group\nDeprecated! Replaced by Ownership aspect."
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "corpuser"
                              ],
                              "name": "IsPartOf"
                            }
                          },
                          "deprecated": true,
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "members",
                          "doc": "List of ldap urn in this group.\nDeprecated! Replaced by GroupMembership aspect."
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "corpGroup"
                              ],
                              "name": "IsPartOf"
                            }
                          },
                          "deprecated": true,
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "groups",
                          "doc": "List of groups in this group.\nDeprecated! This field is unused."
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "A description of the group."
                        }
                      ],
                      "doc": "Information about a Corp Group ingested from a third party source"
                    },
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.Status"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the LdapUser. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific CorpGroup entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "corpUserKey",
              "name": "corpuser"
            },
            "name": "CorpUserSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.CorpuserUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "corpUserKey"
                      },
                      "name": "CorpUserKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 2.0,
                            "enableAutocomplete": true,
                            "fieldName": "ldap",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "username",
                          "doc": "The name of the AD/LDAP user."
                        }
                      ],
                      "doc": "Key for a CorpUser"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "EntityUrns": [
                          "com.linkedin.pegasus2avro.common.CorpuserUrn"
                        ],
                        "name": "corpUserInfo"
                      },
                      "name": "CorpUserInfo",
                      "namespace": "com.linkedin.pegasus2avro.identity",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "BOOLEAN",
                            "weightsPerFieldValue": {
                              "true": 2.0
                            }
                          },
                          "type": "boolean",
                          "name": "active",
                          "doc": "Deprecated! Use CorpUserStatus instead. Whether the corpUser is active, ref: https://iwww.corp.linkedin.com/wiki/cf/display/GTSD/Accessing+Active+Directory+via+LDAP+tools"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "displayName",
                          "default": null,
                          "doc": "displayName of this user ,  e.g.  Hang Zhang(DataHQ)"
                        },
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD",
                            "queryByDefault": true
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "email",
                          "default": null,
                          "doc": "email address of this user"
                        },
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD",
                            "queryByDefault": true
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "title",
                          "default": null,
                          "doc": "title of this user"
                        },
                        {
                          "Relationship": {
                            "entityTypes": [
                              "corpuser"
                            ],
                            "name": "ReportsTo"
                          },
                          "Searchable": {
                            "fieldName": "managerLdap",
                            "fieldType": "URN",
                            "queryByDefault": true
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.CorpuserUrn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "managerUrn",
                          "default": null,
                          "doc": "direct manager of this user"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "departmentId",
                          "default": null,
                          "doc": "department id this user belong to"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "departmentName",
                          "default": null,
                          "doc": "department name this user belong to"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "firstName",
                          "default": null,
                          "doc": "first name of this user"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "lastName",
                          "default": null,
                          "doc": "last name of this user"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "fieldType": "TEXT_PARTIAL",
                            "queryByDefault": true
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "fullName",
                          "default": null,
                          "doc": "Common name of this user, format is firstName + lastName (split by a whitespace)"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "countryCode",
                          "default": null,
                          "doc": "two uppercase letters country code. e.g.  US"
                        }
                      ],
                      "doc": "Linkedin corp user information"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "EntityUrns": [
                          "com.linkedin.pegasus2avro.common.CorpuserUrn"
                        ],
                        "name": "corpUserEditableInfo"
                      },
                      "name": "CorpUserEditableInfo",
                      "namespace": "com.linkedin.pegasus2avro.identity",
                      "fields": [
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "aboutMe",
                          "default": null,
                          "doc": "About me section of the user"
                        },
                        {
                          "Searchable": {
                            "/*": {
                              "fieldType": "TEXT"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "teams",
                          "default": [],
                          "doc": "Teams that the user belongs to e.g. Metadata"
                        },
                        {
                          "Searchable": {
                            "/*": {
                              "fieldType": "TEXT"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "skills",
                          "default": [],
                          "doc": "Skills that the user possesses e.g. Machine Learning"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": "string",
                          "name": "pictureLink",
                          "default": "https://raw.githubusercontent.com/datahub-project/datahub/master/datahub-web-react/src/images/default_avatar.png",
                          "doc": "A URL which points to a picture which user wants to set as a profile photo"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "fieldType": "TEXT_PARTIAL",
                            "queryByDefault": true
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "displayName",
                          "default": null,
                          "doc": "DataHub-native display name"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "title",
                          "default": null,
                          "doc": "DataHub-native Title, e.g. 'Software Engineer'"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "slack",
                          "default": null,
                          "doc": "Slack handle for the user"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "phone",
                          "default": null,
                          "doc": "Phone number to contact the user"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "email",
                          "default": null,
                          "doc": "Email address to contact the user"
                        }
                      ],
                      "doc": "Linkedin corp user information that can be edited from UI"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "corpUserStatus"
                      },
                      "name": "CorpUserStatus",
                      "namespace": "com.linkedin.pegasus2avro.identity",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD"
                          },
                          "type": "string",
                          "name": "status",
                          "doc": "Status of the user, e.g. PROVISIONED / ACTIVE / SUSPENDED"
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "doc": "Audit stamp containing who last modified the status and when."
                        }
                      ],
                      "doc": "The status of the user, e.g. provisioned, active, suspended, etc."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "groupMembership"
                      },
                      "name": "GroupMembership",
                      "namespace": "com.linkedin.pegasus2avro.identity",
                      "fields": [
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "corpGroup"
                              ],
                              "name": "IsMemberOfGroup"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "groups"
                        }
                      ],
                      "doc": "Carries information about the CorpGroups a user is in."
                    },
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.Status"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the CorpUser. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific CorpUser entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dashboardKey",
              "name": "dashboard"
            },
            "name": "DashboardSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DashboardUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dashboardKey"
                      },
                      "name": "DashboardKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 4.0,
                            "fieldName": "tool",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "dashboardTool",
                          "doc": "The name of the dashboard tool such as looker, redash etc."
                        },
                        {
                          "type": "string",
                          "name": "dashboardId",
                          "doc": "Unique id for the dashboard. This id should be globally unique for a dashboarding tool even when there are multiple deployments of it. As an example, dashboard URL could be used here for Looker such as 'looker.linkedin.com/dashboards/1234'"
                        }
                      ],
                      "doc": "Key for a Dashboard"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dashboardInfo"
                      },
                      "name": "DashboardInfo",
                      "namespace": "com.linkedin.pegasus2avro.dashboard",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "title",
                          "doc": "Title of the dashboard"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": "string",
                          "name": "description",
                          "doc": "Detailed description about the dashboard"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "chart"
                              ],
                              "isLineage": true,
                              "name": "Contains"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "charts",
                          "default": [],
                          "doc": "Charts in a dashboard"
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.ChangeAuditStamps",
                          "name": "lastModified",
                          "doc": "Captures information about who created/last modified/deleted this dashboard and when"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "dashboardUrl",
                          "default": null,
                          "doc": "URL for the dashboard. This could be used as an external link on DataHub to allow users access/view the dashboard"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "KEYWORD",
                            "filterNameOverride": "Access Level"
                          },
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AccessLevel"
                          ],
                          "name": "access",
                          "default": null,
                          "doc": "Access level for the dashboard"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "lastRefreshed",
                          "default": null,
                          "doc": "The time when this dashboard last refreshed"
                        }
                      ],
                      "doc": "Information about a dashboard"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableDashboardProperties"
                      },
                      "name": "EditableDashboardProperties",
                      "namespace": "com.linkedin.pegasus2avro.dashboard",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "Searchable": {
                            "fieldName": "editedDescription",
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Edited documentation of the dashboard"
                        }
                      ],
                      "doc": "Stores editable changes made to properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlossaryTerms",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the dashboard. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific Dashboard entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataFlowKey",
              "name": "dataFlow"
            },
            "name": "DataFlowSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DataFlowUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataFlowKey"
                      },
                      "name": "DataFlowKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "orchestrator",
                          "doc": "Workflow manager like azkaban, airflow which orchestrates the flow"
                        },
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "flowId",
                          "doc": "Unique Identifier of the data flow"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "cluster",
                          "doc": "Cluster where the flow is executed"
                        }
                      ],
                      "doc": "Key for a Data Flow"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataFlowInfo"
                      },
                      "name": "DataFlowInfo",
                      "namespace": "com.linkedin.pegasus2avro.datajob",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Flow name"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Flow description"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL",
                            "queryByDefault": false
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "project",
                          "default": null,
                          "doc": "Optional project/namespace associated with the flow"
                        }
                      ],
                      "doc": "Information about a Data processing flow"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableDataFlowProperties"
                      },
                      "name": "EditableDataFlowProperties",
                      "namespace": "com.linkedin.pegasus2avro.datajob",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "Searchable": {
                            "fieldName": "editedDescription",
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Edited documentation of the data flow"
                        }
                      ],
                      "doc": "Stores editable changes made to properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlossaryTerms",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the data flow. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific DataFlow entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataJobKey",
              "name": "dataJob"
            },
            "name": "DataJobSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DataJobUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataJobKey"
                      },
                      "name": "DataJobKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Relationship": {
                            "entityTypes": [
                              "dataFlow"
                            ],
                            "name": "IsPartOf"
                          },
                          "Searchable": {
                            "fieldName": "dataFlow",
                            "fieldType": "URN_PARTIAL",
                            "queryByDefault": false
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "flow",
                          "doc": "Standardized data processing flow urn representing the flow for the job"
                        },
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "jobId",
                          "doc": "Unique Identifier of the data job"
                        }
                      ],
                      "doc": "Key for a Data Job"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataJobInfo"
                      },
                      "name": "DataJobInfo",
                      "namespace": "com.linkedin.pegasus2avro.datajob",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Job name"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Job description"
                        },
                        {
                          "type": [
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "COMMAND": "The command job type is one of the basic built-in types. It runs multiple UNIX commands using java processbuilder.\nUpon execution, Azkaban spawns off a process to run the command.",
                                "GLUE": "Glue type is for running AWS Glue job transforms.",
                                "HADOOP_JAVA": "Runs a java program with ability to access Hadoop cluster.\nhttps://azkaban.readthedocs.io/en/latest/jobTypes.html#java-job-type",
                                "HADOOP_SHELL": "In large part, this is the same Command type. The difference is its ability to talk to a Hadoop cluster\nsecurely, via Hadoop tokens.",
                                "HIVE": "Hive type is for running Hive jobs.",
                                "PIG": "Pig type is for running Pig jobs.",
                                "SQL": "SQL is for running Presto, mysql queries etc"
                              },
                              "name": "AzkabanJobType",
                              "namespace": "com.linkedin.pegasus2avro.datajob.azkaban",
                              "symbols": [
                                "COMMAND",
                                "HADOOP_JAVA",
                                "HADOOP_SHELL",
                                "HIVE",
                                "PIG",
                                "SQL",
                                "GLUE"
                              ],
                              "doc": "The various types of support azkaban jobs"
                            },
                            "string"
                          ],
                          "name": "type",
                          "doc": "Datajob type\n*NOTE**: AzkabanJobType is deprecated. Please use strings instead."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.DataFlowUrn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "flowUrn",
                          "default": null,
                          "doc": "DataFlow urn that this job is part of"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "COMPLETED": "Jobs with successful completion.",
                                "FAILED": "Jobs that have failed.",
                                "IN_PROGRESS": "Jobs currently running.",
                                "SKIPPED": "Jobs that have been skipped.",
                                "STARTING": "Jobs being initialized.",
                                "STOPPED": "Jobs that have stopped.",
                                "STOPPING": "Jobs being stopped.",
                                "UNKNOWN": "Jobs with unknown status (either unmappable or unavailable)"
                              },
                              "name": "JobStatus",
                              "namespace": "com.linkedin.pegasus2avro.datajob",
                              "symbols": [
                                "STARTING",
                                "IN_PROGRESS",
                                "STOPPING",
                                "STOPPED",
                                "COMPLETED",
                                "FAILED",
                                "UNKNOWN",
                                "SKIPPED"
                              ],
                              "doc": "Job statuses"
                            }
                          ],
                          "name": "status",
                          "default": null,
                          "doc": "Status of the job"
                        }
                      ],
                      "doc": "Information about a Data processing job"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataJobInputOutput"
                      },
                      "name": "DataJobInputOutput",
                      "namespace": "com.linkedin.pegasus2avro.datajob",
                      "fields": [
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "Consumes"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "inputs",
                              "fieldType": "URN",
                              "numValuesFieldName": "numInputDatasets",
                              "queryByDefault": false
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "inputDatasets",
                          "doc": "Input datasets consumed by the data job during processing"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "isUpstream": false,
                              "name": "Produces"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "outputs",
                              "fieldType": "URN",
                              "numValuesFieldName": "numOutputDatasets",
                              "queryByDefault": false
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "outputDatasets",
                          "doc": "Output datasets produced by the data job during processing"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataJob"
                              ],
                              "isLineage": true,
                              "name": "DownstreamOf"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "inputDatajobs",
                          "default": null,
                          "doc": "Input datajobs that this data job depends on"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "schemaField"
                              ],
                              "name": "Consumes"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "inputFields",
                              "fieldType": "URN",
                              "numValuesFieldName": "numInputFields",
                              "queryByDefault": false
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "inputDatasetFields",
                          "default": null,
                          "doc": "Fields of the input datasets used by this job"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "schemaField"
                              ],
                              "name": "Produces"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "outputFields",
                              "fieldType": "URN",
                              "numValuesFieldName": "numOutputFields",
                              "queryByDefault": false
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "outputDatasetFields",
                          "default": null,
                          "doc": "Fields of the output datasets this job writes to"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "record",
                                "name": "FineGrainedLineage",
                                "namespace": "com.linkedin.pegasus2avro.dataset",
                                "fields": [
                                  {
                                    "type": {
                                      "type": "enum",
                                      "symbolDocs": {
                                        "DATASET": " Indicates that this lineage is originating from upstream dataset(s)",
                                        "FIELD_SET": " Indicates that this lineage is originating from upstream field(s)",
                                        "NONE": " Indicates that there is no upstream lineage i.e. the downstream field is not a derived field"
                                      },
                                      "name": "FineGrainedLineageUpstreamType",
                                      "namespace": "com.linkedin.pegasus2avro.dataset",
                                      "symbols": [
                                        "FIELD_SET",
                                        "DATASET",
                                        "NONE"
                                      ],
                                      "doc": "The type of upstream entity in a fine-grained lineage"
                                    },
                                    "name": "upstreamType",
                                    "doc": "The type of upstream entity"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      {
                                        "type": "array",
                                        "items": "string"
                                      }
                                    ],
                                    "name": "upstreams",
                                    "default": null,
                                    "doc": "Upstream entities in the lineage"
                                  },
                                  {
                                    "type": {
                                      "type": "enum",
                                      "symbolDocs": {
                                        "FIELD": " Indicates that the lineage is for a single, specific, downstream field",
                                        "FIELD_SET": " Indicates that the lineage is for a set of downstream fields"
                                      },
                                      "name": "FineGrainedLineageDownstreamType",
                                      "namespace": "com.linkedin.pegasus2avro.dataset",
                                      "symbols": [
                                        "FIELD",
                                        "FIELD_SET"
                                      ],
                                      "doc": "The type of downstream field(s) in a fine-grained lineage"
                                    },
                                    "name": "downstreamType",
                                    "doc": "The type of downstream field(s)"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      {
                                        "type": "array",
                                        "items": "string"
                                      }
                                    ],
                                    "name": "downstreams",
                                    "default": null,
                                    "doc": "Downstream fields in the lineage"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "name": "transformOperation",
                                    "default": null,
                                    "doc": "The transform operation applied to the upstream entities to produce the downstream field(s)"
                                  },
                                  {
                                    "type": "float",
                                    "name": "confidenceScore",
                                    "default": 1.0,
                                    "doc": "The confidence in this lineage between 0 (low confidence) and 1 (high confidence)"
                                  }
                                ],
                                "doc": "A fine-grained lineage from upstream fields/datasets to downstream field(s)"
                              }
                            }
                          ],
                          "name": "fineGrainedLineages",
                          "default": null,
                          "doc": "Fine-grained column-level lineages"
                        }
                      ],
                      "doc": "Information about the inputs and outputs of a Data processing job"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableDataJobProperties"
                      },
                      "name": "EditableDataJobProperties",
                      "namespace": "com.linkedin.pegasus2avro.datajob",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "Searchable": {
                            "fieldName": "editedDescription",
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Edited documentation of the data job "
                        }
                      ],
                      "doc": "Stores editable changes made to properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlossaryTerms",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the data job. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific DataJob entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "datasetKey",
              "name": "dataset"
            },
            "name": "DatasetSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "datasetKey"
                      },
                      "name": "DatasetKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Data platform urn associated with the dataset"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldName": "id",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Unique guid for dataset"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "TEXT_PARTIAL",
                            "filterNameOverride": "Environment",
                            "queryByDefault": false
                          },
                          "type": {
                            "type": "enum",
                            "symbolDocs": {
                              "CORP": "Designates corporation fabrics",
                              "DEV": "Designates development fabrics",
                              "EI": "Designates early-integration fabrics",
                              "NON_PROD": "Designates non-production fabrics",
                              "PRE": "Designates pre-production fabrics",
                              "PROD": "Designates production fabrics",
                              "QA": "Designates quality assurance fabrics",
                              "STG": "Designates staging fabrics",
                              "TEST": "Designates testing fabrics",
                              "UAT": "Designates user acceptance testing fabrics"
                            },
                            "name": "FabricType",
                            "namespace": "com.linkedin.pegasus2avro.common",
                            "symbols": [
                              "DEV",
                              "TEST",
                              "QA",
                              "UAT",
                              "EI",
                              "PRE",
                              "STG",
                              "NON_PROD",
                              "PROD",
                              "CORP"
                            ],
                            "doc": "Fabric group type"
                          },
                          "name": "origin",
                          "doc": "Fabric type where dataset belongs to or where it was generated."
                        }
                      ],
                      "doc": "Key for a Dataset"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "datasetProperties"
                      },
                      "name": "DatasetProperties",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "name",
                          "default": null,
                          "doc": "Display name of the Dataset"
                        },
                        {
                          "Searchable": {
                            "addToFilters": false,
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "qualifiedName",
                          "default": null,
                          "doc": "Fully-qualified name of the Dataset"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the dataset"
                        },
                        {
                          "java": {
                            "class": "java.net.URI"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "uri",
                          "default": null,
                          "doc": "The abstracted URI such as hdfs:///data/tracking/PageViewEvent, file:///dir/file_name. Uri should not include any environment specific properties. Some datasets might not have a standardized uri, which makes this field optional (i.e. kafka topic)."
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "tags",
                          "default": [],
                          "doc": "[Legacy] Unstructured tags for the dataset. Structured tags can be applied via the `GlobalTags` aspect."
                        }
                      ],
                      "doc": "Properties associated with a Dataset"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableDatasetProperties"
                      },
                      "name": "EditableDatasetProperties",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "Searchable": {
                            "fieldName": "editedDescription",
                            "fieldType": "TEXT"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the dataset"
                        }
                      ],
                      "doc": "EditableDatasetProperties stores editable changes made to dataset properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "datasetDeprecation"
                      },
                      "Deprecated": true,
                      "name": "DatasetDeprecation",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "BOOLEAN",
                            "weightsPerFieldValue": {
                              "true": 0.5
                            }
                          },
                          "type": "boolean",
                          "name": "deprecated",
                          "doc": "Whether the dataset is deprecated by owner."
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "decommissionTime",
                          "default": null,
                          "doc": "The time user plan to decommission this dataset."
                        },
                        {
                          "type": "string",
                          "name": "note",
                          "doc": "Additional information about the dataset deprecation plan, such as the wiki, doc, RB."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "actor",
                          "default": null,
                          "doc": "The corpuser URN which will be credited for modifying this deprecation content."
                        }
                      ],
                      "doc": "Dataset deprecation status\nDeprecated! This aspect is deprecated in favor of the more-general-purpose 'Deprecation' aspect."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "datasetUpstreamLineage"
                      },
                      "deprecated": "use UpstreamLineage.fineGrainedLineages instead",
                      "name": "DatasetUpstreamLineage",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "deprecated": "use FineGrainedLineage instead",
                              "name": "DatasetFieldMapping",
                              "namespace": "com.linkedin.pegasus2avro.dataset",
                              "fields": [
                                {
                                  "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                                  "name": "created",
                                  "doc": "Audit stamp containing who reported the field mapping and when"
                                },
                                {
                                  "type": [
                                    {
                                      "type": "enum",
                                      "symbolDocs": {
                                        "BLACKBOX": "Field transformation expressed as unknown black box function.",
                                        "IDENTITY": "Field transformation expressed as Identity function."
                                      },
                                      "name": "TransformationType",
                                      "namespace": "com.linkedin.pegasus2avro.common.fieldtransformer",
                                      "symbols": [
                                        "BLACKBOX",
                                        "IDENTITY"
                                      ],
                                      "doc": "Type of the transformation involved in generating destination fields from source fields."
                                    },
                                    {
                                      "type": "record",
                                      "name": "UDFTransformer",
                                      "namespace": "com.linkedin.pegasus2avro.common.fieldtransformer",
                                      "fields": [
                                        {
                                          "type": "string",
                                          "name": "udf",
                                          "doc": "A UDF mentioning how the source fields got transformed to destination field. This is the FQCN(Fully Qualified Class Name) of the udf."
                                        }
                                      ],
                                      "doc": "Field transformation expressed in UDF"
                                    }
                                  ],
                                  "name": "transformation",
                                  "doc": "Transfomration function between the fields involved"
                                },
                                {
                                  "type": {
                                    "type": "array",
                                    "items": [
                                      "string"
                                    ]
                                  },
                                  "name": "sourceFields",
                                  "doc": "Source fields from which the fine grained lineage is derived"
                                },
                                {
                                  "deprecated": "use SchemaFieldPath and represent as generic Urn instead",
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.DatasetFieldUrn"
                                  },
                                  "type": "string",
                                  "name": "destinationField",
                                  "doc": "Destination field which is derived from source fields"
                                }
                              ],
                              "doc": "Representation of mapping between fields in source dataset to the field in destination dataset"
                            }
                          },
                          "name": "fieldMappings",
                          "doc": "Upstream to downstream field level lineage mappings"
                        }
                      ],
                      "doc": "Fine Grained upstream lineage for fields in a dataset"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "upstreamLineage"
                      },
                      "name": "UpstreamLineage",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "Upstream",
                              "namespace": "com.linkedin.pegasus2avro.dataset",
                              "fields": [
                                {
                                  "deprecated": "we no longer associate a timestamp per upstream edge",
                                  "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                                  "name": "auditStamp",
                                  "default": {
                                    "actor": "urn:li:corpuser:unknown",
                                    "impersonator": null,
                                    "time": 0
                                  },
                                  "doc": "Audit stamp containing who reported the lineage and when.\nWARNING: this field is deprecated and may be removed in a future release."
                                },
                                {
                                  "Relationship": {
                                    "entityTypes": [
                                      "dataset"
                                    ],
                                    "isLineage": true,
                                    "name": "DownstreamOf"
                                  },
                                  "Searchable": {
                                    "fieldName": "upstreams",
                                    "fieldType": "URN",
                                    "queryByDefault": false
                                  },
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"
                                  },
                                  "type": "string",
                                  "name": "dataset",
                                  "doc": "The upstream dataset the lineage points to"
                                },
                                {
                                  "type": {
                                    "type": "enum",
                                    "symbolDocs": {
                                      "COPY": "Direct copy without modification",
                                      "TRANSFORMED": "Transformed data with modification (format or content change)",
                                      "VIEW": "Represents a view defined on the sources e.g. Hive view defined on underlying hive tables or a Hive table pointing to a HDFS dataset or DALI view defined on multiple sources"
                                    },
                                    "name": "DatasetLineageType",
                                    "namespace": "com.linkedin.pegasus2avro.dataset",
                                    "symbols": [
                                      "COPY",
                                      "TRANSFORMED",
                                      "VIEW"
                                    ],
                                    "doc": "The various types of supported dataset lineage"
                                  },
                                  "name": "type",
                                  "doc": "The type of the lineage"
                                }
                              ],
                              "doc": "Upstream lineage information about a dataset including the source reporting the lineage"
                            }
                          },
                          "name": "upstreams",
                          "doc": "List of upstream dataset lineage information"
                        },
                        {
                          "Relationship": {
                            "/*/upstreams/*": {
                              "entityTypes": [
                                "dataset",
                                "schemaField"
                              ],
                              "name": "DownstreamOf"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "com.linkedin.pegasus2avro.dataset.FineGrainedLineage"
                            }
                          ],
                          "name": "fineGrainedLineages",
                          "default": null,
                          "doc": " List of fine-grained lineage information, including field-level lineage"
                        }
                      ],
                      "doc": "Upstream lineage of a dataset"
                    },
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "schemaMetadata"
                      },
                      "name": "SchemaMetadata",
                      "namespace": "com.linkedin.pegasus2avro.schema",
                      "fields": [
                        {
                          "validate": {
                            "strlen": {
                              "max": 500,
                              "min": 1
                            }
                          },
                          "type": "string",
                          "name": "schemaName",
                          "doc": "Schema name e.g. PageViewEvent, identity.Profile, ams.account_management_tracking"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.DataPlatformUrn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Standardized platform urn where schema is defined. The data platform Urn (urn:li:platform:{platform_name})"
                        },
                        {
                          "type": "long",
                          "name": "version",
                          "doc": "Every change to SchemaMetadata in the resource results in a new version. Version is server assigned. This version is differ from platform native schema version."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "dataset",
                          "default": null,
                          "doc": "Dataset this schema metadata is associated with."
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "cluster",
                          "default": null,
                          "doc": "The cluster this schema metadata resides from"
                        },
                        {
                          "type": "string",
                          "name": "hash",
                          "doc": "the SHA1 hash of the schema content"
                        },
                        {
                          "type": [
                            {
                              "type": "record",
                              "name": "EspressoSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "documentSchema",
                                  "doc": "The native espresso document schema."
                                },
                                {
                                  "type": "string",
                                  "name": "tableSchema",
                                  "doc": "The espresso table schema definition."
                                }
                              ],
                              "doc": "Schema text of an espresso table schema."
                            },
                            {
                              "type": "record",
                              "name": "OracleDDL",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "tableSchema",
                                  "doc": "The native schema in the dataset's platform. This is a human readable (json blob) table schema."
                                }
                              ],
                              "doc": "Schema holder for oracle data definition language that describes an oracle table."
                            },
                            {
                              "type": "record",
                              "name": "MySqlDDL",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "tableSchema",
                                  "doc": "The native schema in the dataset's platform. This is a human readable (json blob) table schema."
                                }
                              ],
                              "doc": "Schema holder for MySql data definition language that describes an MySql table."
                            },
                            {
                              "type": "record",
                              "name": "PrestoDDL",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "rawSchema",
                                  "doc": "The raw schema in the dataset's platform. This includes the DDL and the columns extracted from DDL."
                                }
                              ],
                              "doc": "Schema holder for presto data definition language that describes a presto view."
                            },
                            {
                              "type": "record",
                              "name": "KafkaSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "documentSchema",
                                  "doc": "The native kafka document schema. This is a human readable avro document schema."
                                },
                                {
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "keySchema",
                                  "default": null,
                                  "doc": "The native kafka key schema as retrieved from Schema Registry"
                                }
                              ],
                              "doc": "Schema holder for kafka schema."
                            },
                            {
                              "type": "record",
                              "name": "BinaryJsonSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "schema",
                                  "doc": "The native schema text for binary JSON file format."
                                }
                              ],
                              "doc": "Schema text of binary JSON schema."
                            },
                            {
                              "type": "record",
                              "name": "OrcSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "schema",
                                  "doc": "The native schema for ORC file format."
                                }
                              ],
                              "doc": "Schema text of an ORC schema."
                            },
                            {
                              "type": "record",
                              "name": "Schemaless",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [],
                              "doc": "The dataset has no specific schema associated with it"
                            },
                            {
                              "type": "record",
                              "name": "KeyValueSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "keySchema",
                                  "doc": "The raw schema for the key in the key-value store."
                                },
                                {
                                  "type": "string",
                                  "name": "valueSchema",
                                  "doc": "The raw schema for the value in the key-value store."
                                }
                              ],
                              "doc": "Schema text of a key-value store schema."
                            },
                            {
                              "type": "record",
                              "name": "OtherSchema",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "rawSchema",
                                  "doc": "The native schema in the dataset's platform."
                                }
                              ],
                              "doc": "Schema holder for undefined schema types."
                            }
                          ],
                          "name": "platformSchema",
                          "doc": "The native schema in the dataset's platform."
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "SchemaField",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "Searchable": {
                                    "fieldName": "fieldPaths",
                                    "fieldType": "TEXT"
                                  },
                                  "type": "string",
                                  "name": "fieldPath",
                                  "doc": "Flattened name of the field. Field is computed from jsonPath field."
                                },
                                {
                                  "Deprecated": true,
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "jsonPath",
                                  "default": null,
                                  "doc": "Flattened name of a field in JSON Path notation."
                                },
                                {
                                  "type": "boolean",
                                  "name": "nullable",
                                  "default": false,
                                  "doc": "Indicates if this field is optional or nullable"
                                },
                                {
                                  "Searchable": {
                                    "boostScore": 0.1,
                                    "fieldName": "fieldDescriptions",
                                    "fieldType": "TEXT"
                                  },
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "description",
                                  "default": null,
                                  "doc": "Description"
                                },
                                {
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.AuditStamp"
                                  ],
                                  "name": "created",
                                  "default": null,
                                  "doc": "An AuditStamp corresponding to the creation of this schema field."
                                },
                                {
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.AuditStamp"
                                  ],
                                  "name": "lastModified",
                                  "default": null,
                                  "doc": "An AuditStamp corresponding to the last modification of this schema field."
                                },
                                {
                                  "type": {
                                    "type": "record",
                                    "name": "SchemaFieldDataType",
                                    "namespace": "com.linkedin.pegasus2avro.schema",
                                    "fields": [
                                      {
                                        "type": [
                                          {
                                            "type": "record",
                                            "name": "BooleanType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Boolean field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "FixedType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Fixed field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "StringType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "String field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "BytesType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Bytes field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "NumberType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Number data type: long, integer, short, etc.."
                                          },
                                          {
                                            "type": "record",
                                            "name": "DateType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Date field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "TimeType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Time field type. This should also be used for datetimes."
                                          },
                                          {
                                            "type": "record",
                                            "name": "EnumType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Enum field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "NullType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Null field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "MapType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [
                                              {
                                                "type": [
                                                  "null",
                                                  "string"
                                                ],
                                                "name": "keyType",
                                                "default": null,
                                                "doc": "Key type in a map"
                                              },
                                              {
                                                "type": [
                                                  "null",
                                                  "string"
                                                ],
                                                "name": "valueType",
                                                "default": null,
                                                "doc": "Type of the value in a map"
                                              }
                                            ],
                                            "doc": "Map field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "ArrayType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [
                                              {
                                                "type": [
                                                  "null",
                                                  {
                                                    "type": "array",
                                                    "items": "string"
                                                  }
                                                ],
                                                "name": "nestedType",
                                                "default": null,
                                                "doc": "List of types this array holds."
                                              }
                                            ],
                                            "doc": "Array field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "UnionType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [
                                              {
                                                "type": [
                                                  "null",
                                                  {
                                                    "type": "array",
                                                    "items": "string"
                                                  }
                                                ],
                                                "name": "nestedTypes",
                                                "default": null,
                                                "doc": "List of types in union type."
                                              }
                                            ],
                                            "doc": "Union field type."
                                          },
                                          {
                                            "type": "record",
                                            "name": "RecordType",
                                            "namespace": "com.linkedin.pegasus2avro.schema",
                                            "fields": [],
                                            "doc": "Record field type."
                                          }
                                        ],
                                        "name": "type",
                                        "doc": "Data platform specific types"
                                      }
                                    ],
                                    "doc": "Schema field data types"
                                  },
                                  "name": "type",
                                  "doc": "Platform independent field type of the field."
                                },
                                {
                                  "type": "string",
                                  "name": "nativeDataType",
                                  "doc": "The native type of the field in the dataset's platform as declared by platform schema."
                                },
                                {
                                  "type": "boolean",
                                  "name": "recursive",
                                  "default": false,
                                  "doc": "There are use cases when a field in type B references type A. A field in A references field of type B. In such cases, we will mark the first field as recursive."
                                },
                                {
                                  "Relationship": {
                                    "/tags/*/tag": {
                                      "entityTypes": [
                                        "tag"
                                      ],
                                      "name": "SchemaFieldTaggedWith"
                                    }
                                  },
                                  "Searchable": {
                                    "/tags/*/tag": {
                                      "boostScore": 0.5,
                                      "fieldName": "fieldTags",
                                      "fieldType": "URN"
                                    }
                                  },
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.GlobalTags"
                                  ],
                                  "name": "globalTags",
                                  "default": null,
                                  "doc": "Tags associated with the field"
                                },
                                {
                                  "Relationship": {
                                    "/terms/*/urn": {
                                      "entityTypes": [
                                        "glossaryTerm"
                                      ],
                                      "name": "SchemaFieldWithGlossaryTerm"
                                    }
                                  },
                                  "Searchable": {
                                    "/terms/*/urn": {
                                      "boostScore": 0.5,
                                      "fieldName": "fieldGlossaryTerms",
                                      "fieldType": "URN"
                                    }
                                  },
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.GlossaryTerms"
                                  ],
                                  "name": "glossaryTerms",
                                  "default": null,
                                  "doc": "Glossary terms associated with the field"
                                },
                                {
                                  "type": "boolean",
                                  "name": "isPartOfKey",
                                  "default": false,
                                  "doc": "For schema fields that are part of complex keys, set this field to true\nWe do this to easily distinguish between value and key fields"
                                },
                                {
                                  "type": [
                                    "null",
                                    "boolean"
                                  ],
                                  "name": "isPartitioningKey",
                                  "default": null,
                                  "doc": "For Datasets which are partitioned, this determines the partitioning key."
                                },
                                {
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "jsonProps",
                                  "default": null,
                                  "doc": "For schema fields that have other properties that are not modeled explicitly,\nuse this field to serialize those properties into a JSON string"
                                }
                              ],
                              "doc": "SchemaField to describe metadata related to dataset schema."
                            }
                          },
                          "name": "fields",
                          "doc": "Client provided a list of fields from document schema."
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "primaryKeys",
                          "default": null,
                          "doc": "Client provided list of fields that define primary keys to access record. Field order defines hierarchical espresso keys. Empty lists indicates absence of primary key access patter. Value is a SchemaField@fieldPath."
                        },
                        {
                          "deprecated": "Use foreignKeys instead.",
                          "type": [
                            "null",
                            {
                              "type": "map",
                              "values": {
                                "type": "record",
                                "name": "ForeignKeySpec",
                                "namespace": "com.linkedin.pegasus2avro.schema",
                                "fields": [
                                  {
                                    "type": [
                                      {
                                        "type": "record",
                                        "name": "DatasetFieldForeignKey",
                                        "namespace": "com.linkedin.pegasus2avro.schema",
                                        "fields": [
                                          {
                                            "java": {
                                              "class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"
                                            },
                                            "type": "string",
                                            "name": "parentDataset",
                                            "doc": "dataset that stores the resource."
                                          },
                                          {
                                            "type": {
                                              "type": "array",
                                              "items": "string"
                                            },
                                            "name": "currentFieldPaths",
                                            "doc": "List of fields in hosting(current) SchemaMetadata that conform a foreign key. List can contain a single entry or multiple entries if several entries in hosting schema conform a foreign key in a single parent dataset."
                                          },
                                          {
                                            "type": "string",
                                            "name": "parentField",
                                            "doc": "SchemaField@fieldPath that uniquely identify field in parent dataset that this field references."
                                          }
                                        ],
                                        "doc": "For non-urn based foregin keys."
                                      },
                                      {
                                        "type": "record",
                                        "name": "UrnForeignKey",
                                        "namespace": "com.linkedin.pegasus2avro.schema",
                                        "fields": [
                                          {
                                            "type": "string",
                                            "name": "currentFieldPath",
                                            "doc": "Field in hosting(current) SchemaMetadata."
                                          }
                                        ],
                                        "doc": "If SchemaMetadata fields make any external references and references are of type com.linkedin.pegasus2avro.common.Urn or any children, this models can be used to mark it."
                                      }
                                    ],
                                    "name": "foreignKey",
                                    "doc": "Foreign key definition in metadata schema."
                                  }
                                ],
                                "doc": "Description of a foreign key in a schema."
                              }
                            }
                          ],
                          "name": "foreignKeysSpecs",
                          "default": null,
                          "doc": "Map captures all the references schema makes to external datasets. Map key is ForeignKeySpecName typeref."
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "record",
                                "name": "ForeignKeyConstraint",
                                "namespace": "com.linkedin.pegasus2avro.schema",
                                "fields": [
                                  {
                                    "type": "string",
                                    "name": "name",
                                    "doc": "Name of the constraint, likely provided from the source"
                                  },
                                  {
                                    "Relationship": {
                                      "/*": {
                                        "entityTypes": [
                                          "schemaField"
                                        ],
                                        "name": "ForeignKeyTo"
                                      }
                                    },
                                    "type": {
                                      "type": "array",
                                      "items": "string"
                                    },
                                    "name": "foreignFields",
                                    "doc": "Fields the constraint maps to on the foreign dataset"
                                  },
                                  {
                                    "type": {
                                      "type": "array",
                                      "items": "string"
                                    },
                                    "name": "sourceFields",
                                    "doc": "Fields the constraint maps to on the source dataset"
                                  },
                                  {
                                    "Relationship": {
                                      "entityTypes": [
                                        "dataset"
                                      ],
                                      "name": "ForeignKeyToDataset"
                                    },
                                    "java": {
                                      "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                                    },
                                    "type": "string",
                                    "name": "foreignDataset",
                                    "doc": "Reference to the foreign dataset for ease of lookup"
                                  }
                                ],
                                "doc": "Description of a foreign key constraint in a schema."
                              }
                            }
                          ],
                          "name": "foreignKeys",
                          "default": null,
                          "doc": "List of foreign key constraints for the schema"
                        }
                      ],
                      "doc": "SchemaMetadata to describe metadata related to store schema"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "editableSchemaMetadata"
                      },
                      "name": "EditableSchemaMetadata",
                      "namespace": "com.linkedin.pegasus2avro.schema",
                      "fields": [
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "created",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                          "name": "lastModified",
                          "default": {
                            "actor": "urn:li:corpuser:unknown",
                            "impersonator": null,
                            "time": 0
                          },
                          "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.AuditStamp"
                          ],
                          "name": "deleted",
                          "default": null,
                          "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "EditableSchemaFieldInfo",
                              "namespace": "com.linkedin.pegasus2avro.schema",
                              "fields": [
                                {
                                  "type": "string",
                                  "name": "fieldPath",
                                  "doc": "FieldPath uniquely identifying the SchemaField this metadata is associated with"
                                },
                                {
                                  "Searchable": {
                                    "boostScore": 0.1,
                                    "fieldName": "editedFieldDescriptions",
                                    "fieldType": "TEXT"
                                  },
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "description",
                                  "default": null,
                                  "doc": "Description"
                                },
                                {
                                  "Relationship": {
                                    "/tags/*/tag": {
                                      "entityTypes": [
                                        "tag"
                                      ],
                                      "name": "EditableSchemaFieldTaggedWith"
                                    }
                                  },
                                  "Searchable": {
                                    "/tags/*/tag": {
                                      "boostScore": 0.5,
                                      "fieldName": "editedFieldTags",
                                      "fieldType": "URN"
                                    }
                                  },
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.GlobalTags"
                                  ],
                                  "name": "globalTags",
                                  "default": null,
                                  "doc": "Tags associated with the field"
                                },
                                {
                                  "Relationship": {
                                    "/terms/*/urn": {
                                      "entityTypes": [
                                        "glossaryTerm"
                                      ],
                                      "name": "EditableSchemaFieldWithGlossaryTerm"
                                    }
                                  },
                                  "Searchable": {
                                    "/terms/*/urn": {
                                      "boostScore": 0.5,
                                      "fieldName": "editedFieldGlossaryTerms",
                                      "fieldType": "URN"
                                    }
                                  },
                                  "type": [
                                    "null",
                                    "com.linkedin.pegasus2avro.common.GlossaryTerms"
                                  ],
                                  "name": "glossaryTerms",
                                  "default": null,
                                  "doc": "Glossary terms associated with the field"
                                }
                              ],
                              "doc": "SchemaField to describe metadata related to dataset schema."
                            }
                          },
                          "name": "editableSchemaFieldInfo",
                          "doc": "Client provided a list of fields from document schema."
                        }
                      ],
                      "doc": "EditableSchemaMetadata stores editable changes made to schema metadata. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines."
                    },
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.GlossaryTerms",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "viewProperties"
                      },
                      "name": "ViewProperties",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "BOOLEAN",
                            "weightsPerFieldValue": {
                              "true": 0.5
                            }
                          },
                          "type": "boolean",
                          "name": "materialized",
                          "doc": "Whether the view is materialized"
                        },
                        {
                          "type": "string",
                          "name": "viewLogic",
                          "doc": "The view logic"
                        },
                        {
                          "type": "string",
                          "name": "viewLanguage",
                          "doc": "The view logic language / dialect"
                        }
                      ],
                      "doc": "Details about a View. \ne.g. Gets activated when subTypes is view"
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the dataset. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific dataset entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataProcessKey",
              "name": "dataProcess"
            },
            "deprecated": "Use DataJob instead.",
            "name": "DataProcessSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DataProcessUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataProcessKey"
                      },
                      "name": "DataProcessKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 4.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Process name i.e. an ETL job name"
                        },
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "orchestrator",
                          "doc": "Standardized Orchestrator where data process is defined.\nTODO: Migrate towards something that can be validated like DataPlatform urn"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL",
                            "queryByDefault": false
                          },
                          "type": "com.linkedin.pegasus2avro.common.FabricType",
                          "name": "origin",
                          "doc": "Fabric type where dataset belongs to or where it was generated."
                        }
                      ],
                      "doc": "Key for a Data Process"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataProcessInfo"
                      },
                      "name": "DataProcessInfo",
                      "namespace": "com.linkedin.pegasus2avro.dataprocess",
                      "fields": [
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "Consumes"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "inputs",
                              "fieldType": "URN",
                              "numValuesFieldName": "numInputDatasets",
                              "queryByDefault": false
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "inputs",
                          "default": null,
                          "doc": "the inputs of the data process"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "Consumes"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "outputs",
                              "fieldType": "URN",
                              "numValuesFieldName": "numOutputDatasets",
                              "queryByDefault": false
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "outputs",
                          "default": null,
                          "doc": "the outputs of the data process"
                        }
                      ],
                      "doc": "The inputs and outputs of this data process"
                    },
                    "com.linkedin.pegasus2avro.common.Status"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the data process. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific Data process entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataPlatformKey",
              "name": "dataPlatform"
            },
            "name": "DataPlatformSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.DataPlatformUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataPlatformKey"
                      },
                      "name": "DataPlatformKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "type": "string",
                          "name": "platformName",
                          "doc": "Data platform name i.e. hdfs, oracle, espresso"
                        }
                      ],
                      "doc": "Key for a Data Platform"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataPlatformInfo"
                      },
                      "name": "DataPlatformInfo",
                      "namespace": "com.linkedin.pegasus2avro.dataplatform",
                      "fields": [
                        {
                          "validate": {
                            "strlen": {
                              "max": 15
                            }
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the data platform"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "displayName",
                          "default": null,
                          "doc": "The name that will be used for displaying a platform type."
                        },
                        {
                          "type": {
                            "type": "enum",
                            "symbolDocs": {
                              "FILE_SYSTEM": "Value for a file system, e.g. hdfs",
                              "KEY_VALUE_STORE": "Value for a key value store, e.g. espresso, voldemort",
                              "MESSAGE_BROKER": "Value for a message broker, e.g. kafka",
                              "OBJECT_STORE": "Value for an object store, e.g. ambry",
                              "OLAP_DATASTORE": "Value for an OLAP datastore, e.g. pinot",
                              "OTHERS": "Value for other platforms, e.g salesforce, dovetail",
                              "QUERY_ENGINE": "Value for a query engine, e.g. presto",
                              "RELATIONAL_DB": "Value for a relational database, e.g. oracle, mysql",
                              "SEARCH_ENGINE": "Value for a search engine, e.g seas"
                            },
                            "name": "PlatformType",
                            "namespace": "com.linkedin.pegasus2avro.dataplatform",
                            "symbols": [
                              "FILE_SYSTEM",
                              "KEY_VALUE_STORE",
                              "MESSAGE_BROKER",
                              "OBJECT_STORE",
                              "OLAP_DATASTORE",
                              "OTHERS",
                              "QUERY_ENGINE",
                              "RELATIONAL_DB",
                              "SEARCH_ENGINE"
                            ],
                            "doc": "Platform types available at LinkedIn"
                          },
                          "name": "type",
                          "doc": "Platform type this data platform describes"
                        },
                        {
                          "type": "string",
                          "name": "datasetNameDelimiter",
                          "doc": "The delimiter in the dataset names on the data platform, e.g. '/' for HDFS and '.' for Oracle"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "logoUrl",
                          "default": null,
                          "doc": "The URL for a logo associated with the platform"
                        }
                      ],
                      "doc": "Information about a data platform"
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the data platform. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific dataplatform entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlModelKey",
              "name": "mlModel"
            },
            "name": "MLModelSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.MLModelUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelKey"
                      },
                      "name": "MLModelKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Standardized platform urn for the model"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the MLModel"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "TEXT_PARTIAL",
                            "filterNameOverride": "Environment",
                            "queryByDefault": false
                          },
                          "type": "com.linkedin.pegasus2avro.common.FabricType",
                          "name": "origin",
                          "doc": "Fabric type where model belongs to or where it was generated"
                        }
                      ],
                      "doc": "Key for an ML model"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelProperties"
                      },
                      "name": "MLModelProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLModel"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "date",
                          "default": null,
                          "doc": "Date when the MLModel was developed"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "record",
                              "name": "VersionTag",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "fields": [
                                {
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "versionTag",
                                  "default": null
                                }
                              ],
                              "doc": "A resource-defined string representing the resource state for the purpose of concurrency control"
                            }
                          ],
                          "name": "version",
                          "default": null,
                          "doc": "Version of the MLModel"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "type",
                          "default": null,
                          "doc": "Type of Algorithm or MLModel such as whether it is a Naive Bayes classifier, Convolutional Neural Network, etc"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "map",
                              "values": [
                                "string",
                                "int",
                                "float",
                                "double",
                                "boolean"
                              ]
                            }
                          ],
                          "name": "hyperParameters",
                          "default": null,
                          "doc": "Hyper Parameters of the MLModel\n\nNOTE: these are deprecated in favor of hyperParams"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "record",
                                "Aspect": {
                                  "name": "mlHyperParam"
                                },
                                "name": "MLHyperParam",
                                "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                                "fields": [
                                  {
                                    "type": "string",
                                    "name": "name",
                                    "doc": "Name of the MLHyperParam"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "name": "description",
                                    "default": null,
                                    "doc": "Documentation of the MLHyperParam"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "name": "value",
                                    "default": null,
                                    "doc": "The value of the MLHyperParam"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "long"
                                    ],
                                    "name": "createdAt",
                                    "default": null,
                                    "doc": "Date when the MLHyperParam was developed"
                                  }
                                ],
                                "doc": "Properties associated with an ML Hyper Param"
                              }
                            }
                          ],
                          "name": "hyperParams",
                          "default": null,
                          "doc": "Hyperparameters of the MLModel"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "record",
                                "Aspect": {
                                  "name": "mlMetric"
                                },
                                "name": "MLMetric",
                                "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                                "fields": [
                                  {
                                    "type": "string",
                                    "name": "name",
                                    "doc": "Name of the mlMetric"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "name": "description",
                                    "default": null,
                                    "doc": "Documentation of the mlMetric"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "string"
                                    ],
                                    "name": "value",
                                    "default": null,
                                    "doc": "The value of the mlMetric"
                                  },
                                  {
                                    "type": [
                                      "null",
                                      "long"
                                    ],
                                    "name": "createdAt",
                                    "default": null,
                                    "doc": "Date when the mlMetric was developed"
                                  }
                                ],
                                "doc": "Properties associated with an ML Metric"
                              }
                            }
                          ],
                          "name": "trainingMetrics",
                          "default": null,
                          "doc": "Metrics of the MLModel used in training"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "com.linkedin.pegasus2avro.ml.metadata.MLMetric"
                            }
                          ],
                          "name": "onlineMetrics",
                          "default": null,
                          "doc": "Metrics of the MLModel used in production"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "mlFeature"
                              ],
                              "isLineage": true,
                              "name": "Consumes"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "mlFeatures",
                          "default": null,
                          "doc": "List of features used for MLModel training"
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "tags",
                          "default": [],
                          "doc": "Tags for the MLModel"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "mlModelDeployment"
                              ],
                              "name": "DeployedTo"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "deployments",
                          "default": null,
                          "doc": "Deployments for the MLModel"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataJob"
                              ],
                              "isLineage": true,
                              "name": "TrainedBy"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "trainingJobs",
                          "default": null,
                          "doc": "List of jobs (if any) used to train the model"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataJob"
                              ],
                              "name": "UsedBy"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "downstreamJobs",
                          "default": null,
                          "doc": "List of jobs (if any) that use the model"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "mlModelGroup"
                              ],
                              "isLineage": true,
                              "isUpstream": false,
                              "name": "MemberOf"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "groups",
                          "default": null,
                          "doc": "Groups the model belongs to"
                        }
                      ],
                      "doc": "Properties associated with a ML Model"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "intendedUse"
                      },
                      "name": "IntendedUse",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "primaryUses",
                          "default": null,
                          "doc": "Primary Use cases for the MLModel."
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "enum",
                                "name": "IntendedUserType",
                                "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                                "symbols": [
                                  "ENTERPRISE",
                                  "HOBBY",
                                  "ENTERTAINMENT"
                                ]
                              }
                            }
                          ],
                          "name": "primaryUsers",
                          "default": null,
                          "doc": "Primary Intended Users - For example, was the MLModel developed for entertainment purposes, for hobbyists, or enterprise solutions?"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "outOfScopeUses",
                          "default": null,
                          "doc": "Highlight technology that the MLModel might easily be confused with, or related contexts that users could try to apply the MLModel to."
                        }
                      ],
                      "doc": "Intended Use for the ML Model"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelFactorPrompts"
                      },
                      "name": "MLModelFactorPrompts",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": {
                                "type": "record",
                                "name": "MLModelFactors",
                                "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                                "fields": [
                                  {
                                    "type": [
                                      "null",
                                      {
                                        "type": "array",
                                        "items": "string"
                                      }
                                    ],
                                    "name": "groups",
                                    "default": null,
                                    "doc": "Groups refers to distinct categories with similar characteristics that are present in the evaluation data instances.\nFor human-centric machine learning MLModels, groups are people who share one or multiple characteristics."
                                  },
                                  {
                                    "type": [
                                      "null",
                                      {
                                        "type": "array",
                                        "items": "string"
                                      }
                                    ],
                                    "name": "instrumentation",
                                    "default": null,
                                    "doc": "The performance of a MLModel can vary depending on what instruments were used to capture the input to the MLModel.\nFor example, a face detection model may perform differently depending on the camera\u2019s hardware and software,\nincluding lens, image stabilization, high dynamic range techniques, and background blurring for portrait mode."
                                  },
                                  {
                                    "type": [
                                      "null",
                                      {
                                        "type": "array",
                                        "items": "string"
                                      }
                                    ],
                                    "name": "environment",
                                    "default": null,
                                    "doc": "A further factor affecting MLModel performance is the environment in which it is deployed."
                                  }
                                ],
                                "doc": "Factors affecting the performance of the MLModel."
                              }
                            }
                          ],
                          "name": "relevantFactors",
                          "default": null,
                          "doc": "What are foreseeable salient factors for which MLModel performance may vary, and how were these determined?"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "com.linkedin.pegasus2avro.ml.metadata.MLModelFactors"
                            }
                          ],
                          "name": "evaluationFactors",
                          "default": null,
                          "doc": "Which factors are being reported, and why were these chosen?"
                        }
                      ],
                      "doc": "Prompts which affect the performance of the MLModel"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelMetrics"
                      },
                      "name": "Metrics",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "performanceMeasures",
                          "default": null,
                          "doc": "Measures of MLModel performance"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "decisionThreshold",
                          "default": null,
                          "doc": "Decision Thresholds used (if any)?"
                        }
                      ],
                      "doc": "Metrics to be featured for the MLModel."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelEvaluationData"
                      },
                      "name": "EvaluationData",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "BaseData",
                              "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                              "fields": [
                                {
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"
                                  },
                                  "type": "string",
                                  "name": "dataset",
                                  "doc": "What dataset were used in the MLModel?"
                                },
                                {
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "motivation",
                                  "default": null,
                                  "doc": "Why was this dataset chosen?"
                                },
                                {
                                  "type": [
                                    "null",
                                    {
                                      "type": "array",
                                      "items": "string"
                                    }
                                  ],
                                  "name": "preProcessing",
                                  "default": null,
                                  "doc": "How was the data preprocessed (e.g., tokenization of sentences, cropping of images, any filtering such as dropping images without faces)?"
                                }
                              ],
                              "doc": "BaseData record"
                            }
                          },
                          "name": "evaluationData",
                          "doc": "Details on the dataset(s) used for the quantitative analyses in the MLModel"
                        }
                      ],
                      "doc": "All referenced datasets would ideally point to any set of documents that provide visibility into the source and composition of the dataset."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelTrainingData"
                      },
                      "name": "TrainingData",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": "com.linkedin.pegasus2avro.ml.metadata.BaseData"
                          },
                          "name": "trainingData",
                          "doc": "Details on the dataset(s) used for training the MLModel"
                        }
                      ],
                      "doc": "Ideally, the MLModel card would contain as much information about the training data as the evaluation data. However, there might be cases where it is not feasible to provide this level of detailed information about the training data. For example, the data may be proprietary, or require a non-disclosure agreement. In these cases, we advocate for basic details about the distributions over groups in the data, as well as any other details that could inform stakeholders on the kinds of biases the model may have encoded."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelQuantitativeAnalyses"
                      },
                      "name": "QuantitativeAnalyses",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "unitaryResults",
                          "default": null,
                          "doc": "Link to a dashboard with results showing how the MLModel performed with respect to each factor"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "intersectionalResults",
                          "default": null,
                          "doc": "Link to a dashboard with results showing how the MLModel performed with respect to the intersection of evaluated factors?"
                        }
                      ],
                      "doc": "Quantitative analyses should be disaggregated, that is, broken down by the chosen factors. Quantitative analyses should provide the results of evaluating the MLModel according to the chosen metrics, providing confidence interval values when possible."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelEthicalConsiderations"
                      },
                      "name": "EthicalConsiderations",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "data",
                          "default": null,
                          "doc": "Does the MLModel use any sensitive data (e.g., protected classes)?"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "humanLife",
                          "default": null,
                          "doc": " Is the MLModel intended to inform decisions about matters central to human life or flourishing \u2013 e.g., health or safety? Or could it be used in such a way?"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "mitigations",
                          "default": null,
                          "doc": "What risk mitigation strategies were used during MLModel development?"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "risksAndHarms",
                          "default": null,
                          "doc": "What risks may be present in MLModel usage? Try to identify the potential recipients, likelihood, and magnitude of harms. If these cannot be determined, note that they were considered but remain unknown."
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "useCases",
                          "default": null,
                          "doc": "Are there any known MLModel use cases that are especially fraught? This may connect directly to the intended use section"
                        }
                      ],
                      "doc": "This section is intended to demonstrate the ethical considerations that went into MLModel development, surfacing ethical challenges and solutions to stakeholders."
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelCaveatsAndRecommendations"
                      },
                      "name": "CaveatsAndRecommendations",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            {
                              "type": "record",
                              "name": "CaveatDetails",
                              "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                              "fields": [
                                {
                                  "type": [
                                    "null",
                                    "boolean"
                                  ],
                                  "name": "needsFurtherTesting",
                                  "default": null,
                                  "doc": "Did the results suggest any further testing?"
                                },
                                {
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "caveatDescription",
                                  "default": null,
                                  "doc": "Caveat Description\nFor ex: Given gender classes are binary (male/not male), which we include as male/female. Further work needed to evaluate across a spectrum of genders."
                                },
                                {
                                  "type": [
                                    "null",
                                    {
                                      "type": "array",
                                      "items": "string"
                                    }
                                  ],
                                  "name": "groupsNotRepresented",
                                  "default": null,
                                  "doc": "Relevant groups that were not represented in the evaluation dataset?"
                                }
                              ],
                              "doc": "This section should list additional concerns that were not covered in the previous sections. For example, did the results suggest any further testing? Were there any relevant groups that were not represented in the evaluation dataset? Are there additional recommendations for model use?"
                            }
                          ],
                          "name": "caveats",
                          "default": null,
                          "doc": "This section should list additional concerns that were not covered in the previous sections. For example, did the results suggest any further testing? Were there any relevant groups that were not represented in the evaluation dataset?"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "recommendations",
                          "default": null,
                          "doc": "Recommendations on where this MLModel should be used."
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "idealDatasetCharacteristics",
                          "default": null,
                          "doc": "Ideal characteristics of an evaluation dataset for this MLModel"
                        }
                      ],
                      "doc": "This section should list additional concerns that were not covered in the previous sections. For example, did the results suggest any further testing? Were there any relevant groups that were not represented in the evaluation dataset? Are there additional recommendations for model use?"
                    },
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "sourceCode"
                      },
                      "name": "SourceCode",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": {
                              "type": "record",
                              "name": "SourceCodeUrl",
                              "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                              "fields": [
                                {
                                  "type": {
                                    "type": "enum",
                                    "name": "SourceCodeUrlType",
                                    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                                    "symbols": [
                                      "ML_MODEL_SOURCE_CODE",
                                      "TRAINING_PIPELINE_SOURCE_CODE",
                                      "EVALUATION_PIPELINE_SOURCE_CODE"
                                    ]
                                  },
                                  "name": "type",
                                  "doc": "Source Code Url Types"
                                },
                                {
                                  "java": {
                                    "class": "com.linkedin.pegasus2avro.common.url.Url",
                                    "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                                  },
                                  "type": "string",
                                  "name": "sourceCodeUrl",
                                  "doc": "Source Code Url"
                                }
                              ],
                              "doc": "Source Code Url Entity"
                            }
                          },
                          "name": "sourceCode",
                          "doc": "Source Code along with types"
                        }
                      ],
                      "doc": "Source Code"
                    },
                    "com.linkedin.pegasus2avro.common.Status",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "cost"
                      },
                      "name": "Cost",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "type": {
                            "type": "enum",
                            "symbolDocs": {
                              "ORG_COST_TYPE": "Org Cost Type to which the Cost of this entity should be attributed to"
                            },
                            "name": "CostType",
                            "namespace": "com.linkedin.pegasus2avro.common",
                            "symbols": [
                              "ORG_COST_TYPE"
                            ],
                            "doc": "Type of Cost Code"
                          },
                          "name": "costType"
                        },
                        {
                          "type": {
                            "type": "record",
                            "name": "CostCost",
                            "namespace": "com.linkedin.pegasus2avro.common",
                            "fields": [
                              {
                                "type": [
                                  "null",
                                  "double"
                                ],
                                "name": "costId",
                                "default": null
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "costCode",
                                "default": null
                              },
                              {
                                "type": {
                                  "type": "enum",
                                  "name": "CostCostDiscriminator",
                                  "namespace": "com.linkedin.pegasus2avro.common",
                                  "symbols": [
                                    "costId",
                                    "costCode"
                                  ]
                                },
                                "name": "fieldDiscriminator",
                                "doc": "Contains the name of the field that has its value set."
                              }
                            ]
                          },
                          "name": "cost"
                        }
                      ]
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "deprecation"
                      },
                      "name": "Deprecation",
                      "namespace": "com.linkedin.pegasus2avro.common",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "BOOLEAN",
                            "weightsPerFieldValue": {
                              "true": 0.5
                            }
                          },
                          "type": "boolean",
                          "name": "deprecated",
                          "doc": "Whether the entity is deprecated."
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "decommissionTime",
                          "default": null,
                          "doc": "The time user plan to decommission this entity."
                        },
                        {
                          "type": "string",
                          "name": "note",
                          "doc": "Additional information about the entity deprecation plan, such as the wiki, doc, RB."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "actor",
                          "doc": "The user URN which will be credited for modifying this deprecation content."
                        }
                      ],
                      "doc": "Deprecation status of an entity"
                    },
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLModel. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "MLModel Snapshot entity details."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlPrimaryKeyKey",
              "name": "mlPrimaryKey"
            },
            "name": "MLPrimaryKeySnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlPrimaryKeyKey"
                      },
                      "name": "MLPrimaryKeyKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "featureNamespace",
                          "doc": "Namespace for the primary key"
                        },
                        {
                          "Searchable": {
                            "boostScore": 8.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the primary key"
                        }
                      ],
                      "doc": "Key for an MLPrimaryKey"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlPrimaryKeyProperties"
                      },
                      "name": "MLPrimaryKeyProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLPrimaryKey"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "AUDIO": "Audio Data",
                                "BINARY": "Binary data is discrete data that can be in only one of two categories \u2014 either yes or no, 1 or 0, off or on, etc",
                                "BYTE": "Bytes data are binary-encoded values that can represent complex objects.",
                                "CONTINUOUS": "Continuous data are made of uncountable values, often the result of a measurement such as height, weight, age etc.",
                                "COUNT": "Count data is discrete whole number data \u2014 no negative numbers here.\nCount data often has many small values, such as zero and one.",
                                "IMAGE": "Image Data",
                                "INTERVAL": "Interval data has equal spaces between the numbers and does not represent a temporal pattern.\nExamples include percentages, temperatures, and income.",
                                "MAP": "Mapping Data Type ex: dict, map",
                                "NOMINAL": "Nominal data is made of discrete values with no numerical relationship between the different categories \u2014 mean and median are meaningless.\nAnimal species is one example. For example, pig is not higher than bird and lower than fish.",
                                "ORDINAL": "Ordinal data are discrete integers that can be ranked or sorted.\nFor example, the distance between first and second may not be the same as the distance between second and third.",
                                "SEQUENCE": "Sequence Data Type ex: list, tuple, range",
                                "SET": "Set Data Type ex: set, frozenset",
                                "TEXT": "Text Data",
                                "TIME": "Time data is a cyclical, repeating continuous form of data.\nThe relevant time features can be any period\u2014 daily, weekly, monthly, annual, etc.",
                                "UNKNOWN": "Unknown data are data that we don't know the type for.",
                                "USELESS": "Useless data is unique, discrete data with no potential relationship with the outcome variable.\nA useless feature has high cardinality. An example would be bank account numbers that were generated randomly.",
                                "VIDEO": "Video Data"
                              },
                              "name": "MLFeatureDataType",
                              "namespace": "com.linkedin.pegasus2avro.common",
                              "symbols": [
                                "USELESS",
                                "NOMINAL",
                                "ORDINAL",
                                "BINARY",
                                "COUNT",
                                "TIME",
                                "INTERVAL",
                                "IMAGE",
                                "VIDEO",
                                "AUDIO",
                                "TEXT",
                                "MAP",
                                "SEQUENCE",
                                "SET",
                                "CONTINUOUS",
                                "BYTE",
                                "UNKNOWN"
                              ],
                              "doc": "MLFeature Data Type"
                            }
                          ],
                          "name": "dataType",
                          "default": null,
                          "doc": "Data Type of the MLPrimaryKey"
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.VersionTag"
                          ],
                          "name": "version",
                          "default": null,
                          "doc": "Version of the MLPrimaryKey"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "DerivedFrom"
                            }
                          },
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "sources",
                          "doc": "Source of the MLPrimaryKey"
                        }
                      ],
                      "doc": "Properties associated with a MLPrimaryKey"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.Deprecation",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLPrimaryKey. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ]
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlFeatureKey",
              "name": "mlFeature"
            },
            "name": "MLFeatureSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.MLFeatureUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlFeatureKey"
                      },
                      "name": "MLFeatureKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "featureNamespace",
                          "doc": "Namespace for the feature"
                        },
                        {
                          "Searchable": {
                            "boostScore": 8.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the feature"
                        }
                      ],
                      "doc": "Key for an MLFeature"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlFeatureProperties"
                      },
                      "name": "MLFeatureProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLFeature"
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.MLFeatureDataType"
                          ],
                          "name": "dataType",
                          "default": null,
                          "doc": "Data Type of the MLFeature"
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.VersionTag"
                          ],
                          "name": "version",
                          "default": null,
                          "doc": "Version of the MLFeature"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "dataset"
                              ],
                              "isLineage": true,
                              "name": "DerivedFrom"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "sources",
                          "default": null,
                          "doc": "Source of the MLFeature"
                        }
                      ],
                      "doc": "Properties associated with a MLFeature"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.Deprecation",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLFeature. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ]
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlFeatureTableKey",
              "name": "mlFeatureTable"
            },
            "name": "MLFeatureTableSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlFeatureTableKey"
                      },
                      "name": "MLFeatureTableKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Relationship": {
                            "entityTypes": [
                              "dataPlatform"
                            ],
                            "name": "SourcePlatform"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Data platform urn associated with the feature table"
                        },
                        {
                          "Searchable": {
                            "boostScore": 8.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the feature table"
                        }
                      ],
                      "doc": "Key for an MLFeatureTable"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlFeatureTableProperties"
                      },
                      "name": "MLFeatureTableProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLFeatureTable"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "mlFeature"
                              ],
                              "name": "Contains"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "features",
                              "fieldType": "URN"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "mlFeatures",
                          "default": null,
                          "doc": "List of features contained in the feature table"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "mlPrimaryKey"
                              ],
                              "name": "KeyedBy"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "fieldName": "primaryKeys",
                              "fieldType": "URN"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "mlPrimaryKeys",
                          "default": null,
                          "doc": "List of primary keys in the feature table (if multiple, assumed to act as a composite key)"
                        }
                      ],
                      "doc": "Properties associated with a MLFeatureTable"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.InstitutionalMemory",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.Deprecation",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLFeatureTable. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ]
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlModelDeploymentKey",
              "name": "mlModelDeployment"
            },
            "name": "MLModelDeploymentSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelDeploymentKey"
                      },
                      "name": "MLModelDeploymentKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Standardized platform urn for the model Deployment"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the MLModelDeployment"
                        },
                        {
                          "Searchable": {
                            "addToFilters": true,
                            "fieldType": "TEXT_PARTIAL",
                            "filterNameOverride": "Environment",
                            "queryByDefault": false
                          },
                          "type": "com.linkedin.pegasus2avro.common.FabricType",
                          "name": "origin",
                          "doc": "Fabric type where model Deployment belongs to or where it was generated"
                        }
                      ],
                      "doc": "Key for an ML model deployment"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelDeploymentProperties"
                      },
                      "name": "MLModelDeploymentProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "externalUrl",
                          "default": null,
                          "doc": "URL where the reference exist"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLModelDeployment"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "createdAt",
                          "default": null,
                          "doc": "Date when the MLModelDeployment was developed"
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.VersionTag"
                          ],
                          "name": "version",
                          "default": null,
                          "doc": "Version of the MLModelDeployment"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "enum",
                              "symbolDocs": {
                                "CREATING": "Deployments being created.",
                                "DELETING": "Deployments being deleted.",
                                "FAILED": "Deployments with an error state.",
                                "IN_SERVICE": "Deployments that are active.",
                                "OUT_OF_SERVICE": "Deployments out of service.",
                                "ROLLING_BACK": "Deployments being reverted to a previous version.",
                                "UNKNOWN": "Deployments with unknown/unmappable state.",
                                "UPDATING": "Deployments being updated."
                              },
                              "name": "DeploymentStatus",
                              "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                              "symbols": [
                                "OUT_OF_SERVICE",
                                "CREATING",
                                "UPDATING",
                                "ROLLING_BACK",
                                "IN_SERVICE",
                                "DELETING",
                                "FAILED",
                                "UNKNOWN"
                              ],
                              "doc": "Model endpoint statuses"
                            }
                          ],
                          "name": "status",
                          "default": null,
                          "doc": "Status of the deployment"
                        }
                      ],
                      "doc": "Properties associated with an ML Model Deployment"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.Deprecation",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLModelDeployment. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ]
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "mlModelGroupKey",
              "name": "mlModelGroup"
            },
            "name": "MLModelGroupSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelGroupKey"
                      },
                      "name": "MLModelGroupKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "platform",
                          "doc": "Standardized platform urn for the model group"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Name of the MLModelGroup"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL",
                            "queryByDefault": false
                          },
                          "type": "com.linkedin.pegasus2avro.common.FabricType",
                          "name": "origin",
                          "doc": "Fabric type where model group belongs to or where it was generated"
                        }
                      ],
                      "doc": "Key for an ML model group"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "mlModelGroupProperties"
                      },
                      "name": "MLModelGroupProperties",
                      "namespace": "com.linkedin.pegasus2avro.ml.metadata",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT",
                            "hasValuesFieldName": "hasDescription"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the MLModelGroup"
                        },
                        {
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "createdAt",
                          "default": null,
                          "doc": "Date when the MLModelGroup was developed"
                        },
                        {
                          "type": [
                            "null",
                            "com.linkedin.pegasus2avro.common.VersionTag"
                          ],
                          "name": "version",
                          "default": null,
                          "doc": "Version of the MLModelGroup"
                        }
                      ],
                      "doc": "Properties associated with an ML Model Group"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.Deprecation",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    "com.linkedin.pegasus2avro.common.GlobalTags",
                    "com.linkedin.pegasus2avro.common.DataPlatformInstance"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the MLModelGroup. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ]
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "tagKey",
              "name": "tag"
            },
            "name": "TagSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.TagUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "tagKey"
                      },
                      "name": "TagKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldName": "id",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "The tag name, which serves as a unique id"
                        }
                      ],
                      "doc": "Key for a Tag"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "tagProperties"
                      },
                      "name": "TagProperties",
                      "namespace": "com.linkedin.pegasus2avro.tag",
                      "fields": [
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "Display name of the tag"
                        },
                        {
                          "Searchable": {},
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "description",
                          "default": null,
                          "doc": "Documentation of the tag"
                        },
                        {
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "colorHex",
                          "default": null,
                          "doc": "The color associated with the Tag in Hex. For example #FFFFFF."
                        }
                      ],
                      "doc": "Properties associated with a Tag"
                    },
                    "com.linkedin.pegasus2avro.common.Status"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the dataset. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific dataset entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "glossaryTermKey",
              "name": "glossaryTerm"
            },
            "name": "GlossaryTermSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryTermKey"
                      },
                      "name": "GlossaryTermKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldName": "id",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name",
                          "doc": "The term name, which serves as a unique id"
                        }
                      ],
                      "doc": "Key for a GlossaryTerm"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryTermInfo"
                      },
                      "name": "GlossaryTermInfo",
                      "namespace": "com.linkedin.pegasus2avro.glossary",
                      "fields": [
                        {
                          "Searchable": {
                            "/*": {
                              "queryByDefault": true
                            }
                          },
                          "type": {
                            "type": "map",
                            "values": "string"
                          },
                          "name": "customProperties",
                          "default": {},
                          "doc": "Custom property bag."
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "name",
                          "default": null,
                          "doc": "Display name of the term"
                        },
                        {
                          "Searchable": {},
                          "type": "string",
                          "name": "definition",
                          "doc": "Definition of business term."
                        },
                        {
                          "Relationship": {
                            "entityTypes": [
                              "glossaryNode"
                            ],
                            "name": "IsPartOf"
                          },
                          "Searchable": {
                            "fieldName": "parentNode",
                            "fieldType": "URN",
                            "hasValuesFieldName": "hasParentNode"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.GlossaryNodeUrn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "parentNode",
                          "default": null,
                          "doc": "Parent node of the glossary term"
                        },
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD"
                          },
                          "type": "string",
                          "name": "termSource",
                          "doc": "Source of the Business Term (INTERNAL or EXTERNAL) with default value as INTERNAL"
                        },
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "sourceRef",
                          "default": null,
                          "doc": "External Reference to the business-term"
                        },
                        {
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.url.Url",
                            "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "sourceUrl",
                          "default": null,
                          "doc": "The abstracted URL such as https://spec.edmcouncil.org/fibo/ontology/FBC/FinancialInstruments/FinancialInstruments/CashInstrument."
                        },
                        {
                          "deprecated": true,
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "rawSchema",
                          "default": null,
                          "doc": "Schema definition of the glossary term"
                        }
                      ],
                      "doc": "Properties associated with a GlossaryTerm"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status",
                    "com.linkedin.pegasus2avro.common.BrowsePaths",
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryRelatedTerms"
                      },
                      "name": "GlossaryRelatedTerms",
                      "namespace": "com.linkedin.pegasus2avro.glossary",
                      "fields": [
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "glossaryTerm"
                              ],
                              "name": "IsA"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "boostScore": 2.0,
                              "fieldName": "isRelatedTerms",
                              "fieldType": "URN"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "isRelatedTerms",
                          "default": null,
                          "doc": "The relationship Is A with glossary term"
                        },
                        {
                          "Relationship": {
                            "/*": {
                              "entityTypes": [
                                "glossaryTerm"
                              ],
                              "name": "HasA"
                            }
                          },
                          "Searchable": {
                            "/*": {
                              "boostScore": 2.0,
                              "fieldName": "hasRelatedTerms",
                              "fieldType": "URN"
                            }
                          },
                          "type": [
                            "null",
                            {
                              "type": "array",
                              "items": "string"
                            }
                          ],
                          "name": "hasRelatedTerms",
                          "default": null,
                          "doc": "The relationship Has A with glossary term"
                        }
                      ],
                      "doc": "Has A / Is A lineage information about a glossary Term reporting the lineage"
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the GlossaryTerm. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific GlossaryTerm entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "glossaryNodeKey",
              "name": "glossaryNode"
            },
            "name": "GlossaryNodeSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryNodeUrn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryNodeKey"
                      },
                      "name": "GlossaryNodeKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "enableAutocomplete": true,
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "name"
                        }
                      ],
                      "doc": "Key for a GlossaryNode"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "glossaryNodeInfo"
                      },
                      "name": "GlossaryNodeInfo",
                      "namespace": "com.linkedin.pegasus2avro.glossary",
                      "fields": [
                        {
                          "Searchable": {},
                          "type": "string",
                          "name": "definition",
                          "doc": "Definition of business node"
                        },
                        {
                          "Relationship": {
                            "entityTypes": [
                              "glossaryNode"
                            ],
                            "name": "IsPartOf"
                          },
                          "Searchable": {
                            "fieldName": "parentNode",
                            "fieldType": "URN",
                            "hasValuesFieldName": "hasParentNode"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.GlossaryNodeUrn"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "parentNode",
                          "default": null,
                          "doc": "Parent node of the glossary term"
                        },
                        {
                          "Searchable": {
                            "boostScore": 10.0,
                            "enableAutocomplete": true,
                            "fieldName": "displayName",
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": [
                            "null",
                            "string"
                          ],
                          "name": "name",
                          "default": null,
                          "doc": "Display name of the node"
                        }
                      ],
                      "doc": "Properties associated with a GlossaryNode"
                    },
                    "com.linkedin.pegasus2avro.common.Ownership",
                    "com.linkedin.pegasus2avro.common.Status"
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the GlossaryNode. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific GlossaryNode entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataHubPolicyKey",
              "name": "dataHubPolicy"
            },
            "name": "DataHubPolicySnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataHubPolicyKey"
                      },
                      "name": "DataHubPolicyKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "type": "string",
                          "name": "id",
                          "doc": "A unique id for the DataHub access policy record. Generated on the server side at policy creation time."
                        }
                      ],
                      "doc": "Key for a DataHub Policy"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataHubPolicyInfo"
                      },
                      "name": "DataHubPolicyInfo",
                      "namespace": "com.linkedin.pegasus2avro.policy",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "TEXT_PARTIAL"
                          },
                          "type": "string",
                          "name": "displayName",
                          "doc": "Display name of the Policy"
                        },
                        {
                          "Searchable": {
                            "fieldType": "TEXT"
                          },
                          "type": "string",
                          "name": "description",
                          "doc": "Description of the Policy"
                        },
                        {
                          "type": "string",
                          "name": "type",
                          "doc": "The type of policy"
                        },
                        {
                          "type": "string",
                          "name": "state",
                          "doc": "The state of policy, ACTIVE or INACTIVE"
                        },
                        {
                          "type": [
                            "null",
                            {
                              "type": "record",
                              "name": "DataHubResourceFilter",
                              "namespace": "com.linkedin.pegasus2avro.policy",
                              "fields": [
                                {
                                  "deprecated": true,
                                  "type": [
                                    "null",
                                    "string"
                                  ],
                                  "name": "type",
                                  "default": null,
                                  "doc": "The type of resource that the policy applies to. This will most often be a data asset entity name, for\nexample 'dataset'. It is not strictly required because in the future we will want to support filtering a resource\nby domain, as well."
                                },
                                {
                                  "deprecated": true,
                                  "type": [
                                    "null",
                                    {
                                      "type": "array",
                                      "items": "string"
                                    }
                                  ],
                                  "name": "resources",
                                  "default": null,
                                  "doc": "A specific set of resources to apply the policy to, e.g. asset urns"
                                },
                                {
                                  "deprecated": true,
                                  "type": "boolean",
                                  "name": "allResources",
                                  "default": false,
                                  "doc": "Whether the policy should be applied to all assets matching the filter."
                                },
                                {
                                  "type": [
                                    "null",
                                    {
                                      "type": "record",
                                      "name": "PolicyMatchFilter",
                                      "namespace": "com.linkedin.pegasus2avro.policy",
                                      "fields": [
                                        {
                                          "type": {
                                            "type": "array",
                                            "items": {
                                              "type": "record",
                                              "name": "PolicyMatchCriterion",
                                              "namespace": "com.linkedin.pegasus2avro.policy",
                                              "fields": [
                                                {
                                                  "type": "string",
                                                  "name": "field",
                                                  "doc": "The name of the field that the criterion refers to"
                                                },
                                                {
                                                  "type": {
                                                    "type": "array",
                                                    "items": "string"
                                                  },
                                                  "name": "values",
                                                  "doc": "Values. Matches criterion if any one of the values matches condition (OR-relationship)"
                                                },
                                                {
                                                  "type": {
                                                    "type": "enum",
                                                    "symbolDocs": {
                                                      "EQUALS": "Whether the field matches the value"
                                                    },
                                                    "name": "PolicyMatchCondition",
                                                    "namespace": "com.linkedin.pegasus2avro.policy",
                                                    "symbols": [
                                                      "EQUALS"
                                                    ],
                                                    "doc": "The matching condition in a filter criterion"
                                                  },
                                                  "name": "condition",
                                                  "default": "EQUALS",
                                                  "doc": "The condition for the criterion"
                                                }
                                              ],
                                              "doc": "A criterion for matching a field with given value"
                                            }
                                          },
                                          "name": "criteria",
                                          "doc": "A list of criteria to apply conjunctively (so all criteria must pass)"
                                        }
                                      ],
                                      "doc": "The filter for specifying the resource or actor to apply privileges to"
                                    }
                                  ],
                                  "name": "filter",
                                  "default": null,
                                  "doc": "Filter to apply privileges to"
                                }
                              ],
                              "doc": "Information used to filter DataHub resource."
                            }
                          ],
                          "name": "resources",
                          "default": null,
                          "doc": "The resource that the policy applies to. Not required for some 'Platform' privileges."
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "privileges",
                          "doc": "The privileges that the policy grants."
                        },
                        {
                          "type": {
                            "type": "record",
                            "name": "DataHubActorFilter",
                            "namespace": "com.linkedin.pegasus2avro.policy",
                            "fields": [
                              {
                                "type": [
                                  "null",
                                  {
                                    "type": "array",
                                    "items": "string"
                                  }
                                ],
                                "name": "users",
                                "default": null,
                                "doc": "A specific set of users to apply the policy to (disjunctive)"
                              },
                              {
                                "type": [
                                  "null",
                                  {
                                    "type": "array",
                                    "items": "string"
                                  }
                                ],
                                "name": "groups",
                                "default": null,
                                "doc": "A specific set of groups to apply the policy to (disjunctive)"
                              },
                              {
                                "type": "boolean",
                                "name": "resourceOwners",
                                "default": false,
                                "doc": "Whether the filter should return true for owners of a particular resource.\nOnly applies to policies of type 'Metadata', which have a resource associated with them."
                              },
                              {
                                "type": "boolean",
                                "name": "allUsers",
                                "default": false,
                                "doc": "Whether the filter should apply to all users."
                              },
                              {
                                "type": "boolean",
                                "name": "allGroups",
                                "default": false,
                                "doc": "Whether the filter should apply to all groups."
                              }
                            ],
                            "doc": "Information used to filter DataHub actors."
                          },
                          "name": "actors",
                          "doc": "The actors that the policy applies to."
                        },
                        {
                          "type": "boolean",
                          "name": "editable",
                          "default": true,
                          "doc": "Whether the policy should be editable via the UI"
                        },
                        {
                          "Searchable": {
                            "fieldType": "DATETIME"
                          },
                          "type": [
                            "null",
                            "long"
                          ],
                          "name": "lastUpdatedTimestamp",
                          "default": null,
                          "doc": "Timestamp when the policy was last updated"
                        }
                      ],
                      "doc": "Information about a DataHub (UI) access policy."
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the DataHub access policy."
              }
            ],
            "doc": "A metadata snapshot for DataHub Access Policy data."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "schemaFieldKey",
              "name": "schemaField"
            },
            "name": "SchemaFieldSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "schemaFieldKey"
                      },
                      "name": "SchemaFieldKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "Searchable": {
                            "fieldType": "URN"
                          },
                          "java": {
                            "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                          },
                          "type": "string",
                          "name": "parent",
                          "doc": "Parent associated with the schema field"
                        },
                        {
                          "Searchable": {
                            "fieldType": "KEYWORD"
                          },
                          "type": "string",
                          "name": "fieldPath",
                          "doc": "fieldPath identifying the schema field"
                        }
                      ],
                      "doc": "Key for a SchemaField"
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the dataset. Depending on the use case, this can either be all, or a selection, of supported aspects."
              }
            ],
            "doc": "A metadata snapshot for a specific schema field entity."
          },
          {
            "type": "record",
            "Entity": {
              "keyAspect": "dataHubRetentionKey",
              "name": "dataHubRetention"
            },
            "name": "DataHubRetentionSnapshot",
            "namespace": "com.linkedin.pegasus2avro.metadata.snapshot",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "urn",
                "doc": "URN for the entity the metadata snapshot is associated with."
              },
              {
                "type": {
                  "type": "array",
                  "items": [
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataHubRetentionKey"
                      },
                      "name": "DataHubRetentionKey",
                      "namespace": "com.linkedin.pegasus2avro.metadata.key",
                      "fields": [
                        {
                          "type": "string",
                          "name": "entityName",
                          "doc": "Entity name to apply retention to. * (or empty) for applying defaults."
                        },
                        {
                          "type": "string",
                          "name": "aspectName",
                          "doc": "Aspect name to apply retention to. * (or empty) for applying defaults."
                        }
                      ],
                      "doc": "Key for a DataHub Retention"
                    },
                    {
                      "type": "record",
                      "Aspect": {
                        "name": "dataHubRetentionConfig"
                      },
                      "name": "DataHubRetentionConfig",
                      "namespace": "com.linkedin.pegasus2avro.retention",
                      "fields": [
                        {
                          "type": {
                            "type": "record",
                            "name": "Retention",
                            "namespace": "com.linkedin.pegasus2avro.retention",
                            "fields": [
                              {
                                "type": [
                                  "null",
                                  {
                                    "type": "record",
                                    "name": "VersionBasedRetention",
                                    "namespace": "com.linkedin.pegasus2avro.retention",
                                    "fields": [
                                      {
                                        "type": "int",
                                        "name": "maxVersions"
                                      }
                                    ],
                                    "doc": "Keep max N latest records"
                                  }
                                ],
                                "name": "version",
                                "default": null
                              },
                              {
                                "type": [
                                  "null",
                                  {
                                    "type": "record",
                                    "name": "TimeBasedRetention",
                                    "namespace": "com.linkedin.pegasus2avro.retention",
                                    "fields": [
                                      {
                                        "type": "int",
                                        "name": "maxAgeInSeconds"
                                      }
                                    ],
                                    "doc": "Keep records that are less than X seconds old"
                                  }
                                ],
                                "name": "time",
                                "default": null
                              }
                            ],
                            "doc": "Base class that encapsulates different retention policies.\nOnly one of the fields should be set"
                          },
                          "name": "retention"
                        }
                      ]
                    }
                  ]
                },
                "name": "aspects",
                "doc": "The list of metadata aspects associated with the DataHub access policy."
              }
            ],
            "doc": "A metadata snapshot for DataHub Access Policy data."
          }
        ],
        "name": "proposedSnapshot",
        "doc": "Snapshot of the proposed metadata change. Include only the aspects affected by the change in the snapshot."
      },
      {
        "type": [
          "null"
        ],
        "name": "proposedDelta",
        "default": null,
        "doc": "Delta of the proposed metadata partial update."
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "SystemMetadata",
            "namespace": "com.linkedin.pegasus2avro.mxe",
            "fields": [
              {
                "type": [
                  "long",
                  "null"
                ],
                "name": "lastObserved",
                "default": 0,
                "doc": "The timestamp the metadata was observed at"
              },
              {
                "type": [
                  "string",
                  "null"
                ],
                "name": "runId",
                "default": "no-run-id-provided",
                "doc": "The run id that produced the metadata. Populated in case of batch-ingestion."
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "registryName",
                "default": null,
                "doc": "The model registry name that was used to process this event"
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "registryVersion",
                "default": null,
                "doc": "The model registry version that was used to process this event"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "map",
                    "values": "string"
                  }
                ],
                "name": "properties",
                "default": null,
                "doc": "Additional properties"
              }
            ],
            "doc": "Metadata associated with each metadata change that is processed by the system"
          }
        ],
        "name": "systemMetadata",
        "default": null,
        "doc": "Metadata around how the snapshot was ingested"
      }
    ],
    "doc": "Kafka event for proposing a metadata change for an entity. A corresponding MetadataAuditEvent is emitted when the change is accepted and committed, otherwise a FailedMetadataChangeEvent will be emitted instead."
  },
  {
    "type": "record",
    "name": "MetadataChangeProposal",
    "namespace": "com.linkedin.pegasus2avro.mxe",
    "fields": [
      {
        "type": [
          "null",
          "com.linkedin.events.KafkaAuditHeader"
        ],
        "name": "auditHeader",
        "default": null,
        "doc": "Kafka audit header. Currently remains unused in the open source."
      },
      {
        "type": "string",
        "name": "entityType",
        "doc": "Type of the entity being written to"
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "entityUrn",
        "default": null,
        "doc": "Urn of the entity being written"
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "GenericAspect",
            "namespace": "com.linkedin.pegasus2avro.mxe",
            "fields": [
              {
                "type": "bytes",
                "name": "value",
                "doc": "The value of the aspect, serialized as bytes."
              },
              {
                "type": "string",
                "name": "contentType",
                "doc": "The content type, which represents the fashion in which the aspect was serialized.\nThe only type currently supported is application/json."
              }
            ],
            "doc": "Generic record structure for serializing an Aspect"
          }
        ],
        "name": "entityKeyAspect",
        "default": null,
        "doc": "Key aspect of the entity being written"
      },
      {
        "type": {
          "type": "enum",
          "symbolDocs": {
            "CREATE": "NOT SUPPORTED YET\ninsert if not exists. otherwise fail",
            "DELETE": "NOT SUPPORTED YET\ndelete action",
            "PATCH": "NOT SUPPORTED YET\npatch the changes instead of full replace",
            "RESTATE": "Restate an aspect, eg. in a index refresh.",
            "UPDATE": "NOT SUPPORTED YET\nupdate if exists. otherwise fail",
            "UPSERT": "insert if not exists. otherwise update"
          },
          "name": "ChangeType",
          "namespace": "com.linkedin.pegasus2avro.events.metadata",
          "symbols": [
            "UPSERT",
            "CREATE",
            "UPDATE",
            "DELETE",
            "PATCH",
            "RESTATE"
          ],
          "doc": "Descriptor for a change action"
        },
        "name": "changeType",
        "doc": "Type of change being proposed"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "aspectName",
        "default": null,
        "doc": "Aspect of the entity being written to\nNot filling this out implies that the writer wants to affect the entire entity\nNote: This is only valid for CREATE, UPSERT, and DELETE operations."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.GenericAspect"
        ],
        "name": "aspect",
        "default": null,
        "doc": "The value of the new aspect."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.SystemMetadata"
        ],
        "name": "systemMetadata",
        "default": null,
        "doc": "A string->string map of custom properties that one might want to attach to an event"
      }
    ],
    "doc": "Kafka event for proposing a metadata change for an entity. A corresponding MetadataChangeLog is emitted when the change is accepted and committed, otherwise a FailedMetadataChangeProposal will be emitted instead."
  },
  {
    "type": "record",
    "name": "UsageAggregation",
    "namespace": "com.linkedin.pegasus2avro.usage",
    "fields": [
      {
        "type": "long",
        "name": "bucket",
        "doc": " Bucket start time in milliseconds "
      },
      {
        "type": {
          "type": "enum",
          "name": "WindowDuration",
          "namespace": "com.linkedin.pegasus2avro.common",
          "symbols": [
            "YEAR",
            "MONTH",
            "WEEK",
            "DAY",
            "HOUR"
          ],
          "doc": "Enum to define the length of a bucket when doing aggregations"
        },
        "name": "duration",
        "doc": " Bucket duration "
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "resource",
        "doc": " Resource associated with these usage stats "
      },
      {
        "type": {
          "type": "record",
          "name": "UsageAggregationMetrics",
          "namespace": "com.linkedin.pegasus2avro.usage",
          "fields": [
            {
              "type": [
                "null",
                "int"
              ],
              "name": "uniqueUserCount",
              "default": null,
              "doc": " Unique user count "
            },
            {
              "type": [
                "null",
                {
                  "type": "array",
                  "items": {
                    "type": "record",
                    "name": "UserUsageCounts",
                    "namespace": "com.linkedin.pegasus2avro.usage",
                    "fields": [
                      {
                        "java": {
                          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                        },
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "user",
                        "default": null
                      },
                      {
                        "type": "int",
                        "name": "count"
                      },
                      {
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "userEmail",
                        "default": null,
                        "doc": " If user_email is set, we attempt to resolve the user's urn upon ingest "
                      }
                    ],
                    "doc": " Records a single user's usage counts for a given resource "
                  }
                }
              ],
              "name": "users",
              "default": null,
              "doc": " Users within this bucket, with frequency counts "
            },
            {
              "type": [
                "null",
                "int"
              ],
              "name": "totalSqlQueries",
              "default": null,
              "doc": " Total SQL query count "
            },
            {
              "type": [
                "null",
                {
                  "type": "array",
                  "items": "string"
                }
              ],
              "name": "topSqlQueries",
              "default": null,
              "doc": " Frequent SQL queries; mostly makes sense for datasets in SQL databases "
            },
            {
              "type": [
                "null",
                {
                  "type": "array",
                  "items": {
                    "type": "record",
                    "name": "FieldUsageCounts",
                    "namespace": "com.linkedin.pegasus2avro.usage",
                    "fields": [
                      {
                        "type": "string",
                        "name": "fieldName"
                      },
                      {
                        "type": "int",
                        "name": "count"
                      }
                    ],
                    "doc": " Records field-level usage counts for a given resource "
                  }
                }
              ],
              "name": "fields",
              "default": null,
              "doc": " Field-level usage stats "
            }
          ],
          "doc": "Metrics for usage data for a given resource and bucket. Not all fields\nmake sense for all buckets, so every field is optional."
        },
        "name": "metrics",
        "doc": " Metrics associated with this bucket "
      }
    ],
    "doc": "Usage data for a given resource, rolled up into a bucket."
  },
  {
    "type": "record",
    "name": "MetadataChangeLog",
    "namespace": "com.linkedin.pegasus2avro.mxe",
    "fields": [
      {
        "type": [
          "null",
          "com.linkedin.events.KafkaAuditHeader"
        ],
        "name": "auditHeader",
        "default": null,
        "doc": "Kafka audit header. Currently remains unused in the open source."
      },
      {
        "type": "string",
        "name": "entityType",
        "doc": "Type of the entity being written to"
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "entityUrn",
        "default": null,
        "doc": "Urn of the entity being written"
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.GenericAspect"
        ],
        "name": "entityKeyAspect",
        "default": null,
        "doc": "Key aspect of the entity being written"
      },
      {
        "type": "com.linkedin.pegasus2avro.events.metadata.ChangeType",
        "name": "changeType",
        "doc": "Type of change being proposed"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "aspectName",
        "default": null,
        "doc": "Aspect of the entity being written to\nNot filling this out implies that the writer wants to affect the entire entity\nNote: This is only valid for CREATE, UPSERT, and DELETE operations."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.GenericAspect"
        ],
        "name": "aspect",
        "default": null,
        "doc": "The value of the new aspect."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.SystemMetadata"
        ],
        "name": "systemMetadata",
        "default": null,
        "doc": "A string->string map of custom properties that one might want to attach to an event"
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.GenericAspect"
        ],
        "name": "previousAspectValue",
        "default": null,
        "doc": "The previous value of the aspect that has changed."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.mxe.SystemMetadata"
        ],
        "name": "previousSystemMetadata",
        "default": null,
        "doc": "The previous value of the system metadata field that has changed."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.common.AuditStamp"
        ],
        "name": "created",
        "default": null,
        "doc": "An audit stamp detailing who and when the aspect was changed by. Required for all intents and purposes."
      }
    ],
    "doc": "Kafka event for capturing update made to an entity's metadata."
  },
  {
    "type": "record",
    "name": "PlatformEvent",
    "namespace": "com.linkedin.pegasus2avro.mxe",
    "fields": [
      {
        "type": {
          "type": "record",
          "name": "PlatformEventHeader",
          "namespace": "com.linkedin.pegasus2avro.mxe",
          "fields": [
            {
              "type": "long",
              "name": "timestampMillis",
              "doc": "The event timestamp field as epoch at UTC in milli seconds."
            }
          ],
          "doc": "A header included with each DataHub platform event."
        },
        "name": "header",
        "doc": "Header information stored with the event."
      },
      {
        "type": "string",
        "name": "name",
        "doc": "The name of the event, e.g. the type of event. For example, 'notificationRequestEvent', 'entityChangeEvent'"
      },
      {
        "type": {
          "type": "record",
          "name": "GenericPayload",
          "namespace": "com.linkedin.pegasus2avro.mxe",
          "fields": [
            {
              "type": "bytes",
              "name": "value",
              "doc": "The value of the event, serialized as bytes."
            },
            {
              "type": "string",
              "name": "contentType",
              "doc": "The content type, which represents the fashion in which the event was serialized.\nThe only type currently supported is application/json."
            }
          ],
          "doc": "Generic payload record structure for serializing a Platform Event."
        },
        "name": "payload",
        "doc": "The event payload."
      }
    ],
    "doc": "A DataHub Platform Event."
  },
  {
    "type": "record",
    "Event": {
      "name": "entityChangeEvent"
    },
    "name": "EntityChangeEvent",
    "namespace": "com.linkedin.pegasus2avro.platform.event.v1",
    "fields": [
      {
        "type": "string",
        "name": "entityType",
        "doc": "The type of the entity affected. Corresponds to the entity registry, e.g. 'dataset', 'chart', 'dashboard', etc."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "entityUrn",
        "doc": "The urn of the entity which was affected."
      },
      {
        "type": "string",
        "name": "category",
        "doc": "The category type (TAG, GLOSSARY_TERM, OWNERSHIP, TECHNICAL_SCHEMA, etc). This is used to determine what the rest of the schema will look like."
      },
      {
        "type": "string",
        "name": "operation",
        "doc": "The operation type. This is used to determine what the rest of the schema will look like."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "modifier",
        "default": null,
        "doc": "The urn of the entity which was affected."
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "Parameters",
            "namespace": "com.linkedin.pegasus2avro.platform.event.v1",
            "fields": [],
            "doc": "Arbitrary key-value parameters for an Entity Change Event. (any record)."
          }
        ],
        "name": "parameters",
        "default": null,
        "doc": "Arbitrary key-value parameters corresponding to the event."
      },
      {
        "type": "com.linkedin.pegasus2avro.common.AuditStamp",
        "name": "auditStamp",
        "doc": "Audit stamp of the operation"
      },
      {
        "type": "int",
        "name": "version",
        "doc": "The version of the event type, incremented in integers."
      }
    ],
    "doc": "Shared fields for all entity change events."
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubAccessTokenInfo"
    },
    "name": "DataHubAccessTokenInfo",
    "namespace": "com.linkedin.pegasus2avro.access.token",
    "fields": [
      {
        "Searchable": {
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "User defined name for the access token if defined."
      },
      {
        "Searchable": {
          "fieldType": "URN"
        },
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "actorUrn",
        "doc": "Urn of the actor to which this access token belongs to."
      },
      {
        "Searchable": {
          "fieldType": "URN"
        },
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "ownerUrn",
        "doc": "Urn of the actor which created this access token."
      },
      {
        "Searchable": {
          "fieldType": "COUNT",
          "queryByDefault": false
        },
        "type": "long",
        "name": "createdAt",
        "doc": "When the token was created."
      },
      {
        "Searchable": {
          "fieldType": "COUNT",
          "queryByDefault": false
        },
        "type": "long",
        "name": "expiresAt",
        "doc": "When the token was expires."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the token if defined."
      }
    ],
    "doc": "Information about a DataHub Access Token"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "assertionInfo"
    },
    "name": "AssertionInfo",
    "namespace": "com.linkedin.pegasus2avro.assertion",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "queryByDefault": true
          }
        },
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "customProperties",
        "default": {},
        "doc": "Custom property bag."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "type": {
          "type": "enum",
          "name": "AssertionType",
          "namespace": "com.linkedin.pegasus2avro.assertion",
          "symbols": [
            "DATASET"
          ]
        },
        "name": "type",
        "doc": "Type of assertion. Assertion types can evolve to span Datasets, Flows (Pipelines), Models, Features etc."
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "DatasetAssertionInfo",
            "namespace": "com.linkedin.pegasus2avro.assertion",
            "fields": [
              {
                "Relationship": {
                  "entityTypes": [
                    "dataset"
                  ],
                  "name": "Asserts"
                },
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "dataset",
                "doc": "The dataset targeted by this assertion."
              },
              {
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "DATASET_COLUMN": "This assertion applies to dataset columns",
                    "DATASET_ROWS": "This assertion applies to entire rows of the dataset",
                    "DATASET_SCHEMA": "This assertion applies to the schema of the dataset",
                    "UNKNOWN": "The scope of the assertion is unknown"
                  },
                  "name": "DatasetAssertionScope",
                  "namespace": "com.linkedin.pegasus2avro.assertion",
                  "symbols": [
                    "DATASET_COLUMN",
                    "DATASET_ROWS",
                    "DATASET_SCHEMA",
                    "UNKNOWN"
                  ]
                },
                "name": "scope",
                "doc": "Scope of the Assertion. What part of the dataset does this assertion apply to?"
              },
              {
                "Relationship": {
                  "/*": {
                    "entityTypes": [
                      "schemaField"
                    ],
                    "name": "Asserts"
                  }
                },
                "type": [
                  "null",
                  {
                    "type": "array",
                    "items": "string"
                  }
                ],
                "name": "fields",
                "default": null,
                "doc": "One or more dataset schema fields that are targeted by this assertion"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "enum",
                    "symbolDocs": {
                      "COLUMNS": "Assertion is applied on all columns.",
                      "COLUMN_COUNT": "Assertion is applied on number of columns.",
                      "IDENTITY": "Assertion is applied on individual column value.",
                      "MAX": "Assertion is applied on column std deviation",
                      "MEAN": "Assertion is applied on column mean",
                      "MEDIAN": "Assertion is applied on column median",
                      "MIN": "Assertion is applied on column min",
                      "NULL_COUNT": "Assertion is applied on number of null values in column",
                      "NULL_PROPORTION": "Assertion is applied on proportion of null values in column",
                      "ROW_COUNT": "Assertion is applied on number of rows.",
                      "STDDEV": "Assertion is applied on column std deviation",
                      "SUM": "Assertion is applied on column sum",
                      "UNIQUE_COUNT": "Assertion is applied on number of distinct values in column",
                      "UNIQUE_PROPOTION": "Assertion is applied on proportion of distinct values in column",
                      "_NATIVE_": "Other"
                    },
                    "name": "AssertionStdAggregation",
                    "namespace": "com.linkedin.pegasus2avro.assertion",
                    "symbols": [
                      "ROW_COUNT",
                      "COLUMNS",
                      "COLUMN_COUNT",
                      "IDENTITY",
                      "MEAN",
                      "MEDIAN",
                      "UNIQUE_COUNT",
                      "UNIQUE_PROPOTION",
                      "NULL_COUNT",
                      "NULL_PROPORTION",
                      "STDDEV",
                      "MIN",
                      "MAX",
                      "SUM",
                      "_NATIVE_"
                    ],
                    "doc": "The function that is applied to the aggregation input (schema, rows, column values) before evaluating an operator."
                  }
                ],
                "name": "aggregation",
                "default": null,
                "doc": "Standardized assertion operator"
              },
              {
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "BETWEEN": "Value being asserted is between min_value and max_value.  Requires 'minValue' & 'maxValue' parameters.",
                    "CONTAIN": "Value being asserted contains value. Requires 'value' parameter.",
                    "END_WITH": "Value being asserted ends with value. Requires 'value' parameter.",
                    "EQUAL_TO": "Value being asserted is equal to value. Requires 'value' parameter.",
                    "GREATER_THAN": "Value being asserted is greater than some value. Requires 'value' parameter.",
                    "GREATER_THAN_OR_EQUAL_TO": "Value being asserted is greater than or equal to some value. Requires 'value' parameter.",
                    "IN": "Value being asserted is one of the array values. Requires 'value' parameter.",
                    "LESS_THAN": "Value being asserted is less than a max value. Requires 'value' parameter.",
                    "LESS_THAN_OR_EQUAL_TO": "Value being asserted is less than or equal to some value. Requires 'value' parameter.",
                    "NOT_IN": "Value being asserted is not in one of the array values. Requires 'value' parameter.",
                    "NOT_NULL": "Value being asserted is not null. Requires no parameters.",
                    "REGEX_MATCH": "Value being asserted matches the regex value. Requires 'value' parameter.",
                    "START_WITH": "Value being asserted starts with value. Requires 'value' parameter.",
                    "_NATIVE_": "Other"
                  },
                  "name": "AssertionStdOperator",
                  "namespace": "com.linkedin.pegasus2avro.assertion",
                  "symbols": [
                    "BETWEEN",
                    "LESS_THAN",
                    "LESS_THAN_OR_EQUAL_TO",
                    "GREATER_THAN",
                    "GREATER_THAN_OR_EQUAL_TO",
                    "EQUAL_TO",
                    "NOT_NULL",
                    "CONTAIN",
                    "END_WITH",
                    "START_WITH",
                    "REGEX_MATCH",
                    "IN",
                    "NOT_IN",
                    "_NATIVE_"
                  ],
                  "doc": "A boolean operator that is applied on the input to an assertion, after an aggregation function has been applied."
                },
                "name": "operator",
                "doc": "Standardized assertion operator"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "record",
                    "name": "AssertionStdParameters",
                    "namespace": "com.linkedin.pegasus2avro.assertion",
                    "fields": [
                      {
                        "type": [
                          "null",
                          {
                            "type": "record",
                            "name": "AssertionStdParameter",
                            "namespace": "com.linkedin.pegasus2avro.assertion",
                            "fields": [
                              {
                                "type": "string",
                                "name": "value",
                                "doc": "The parameter value"
                              },
                              {
                                "type": {
                                  "type": "enum",
                                  "name": "AssertionStdParameterType",
                                  "namespace": "com.linkedin.pegasus2avro.assertion",
                                  "symbols": [
                                    "STRING",
                                    "NUMBER",
                                    "LIST",
                                    "SET",
                                    "UNKNOWN"
                                  ]
                                },
                                "name": "type",
                                "doc": "The type of the parameter"
                              }
                            ],
                            "doc": "Single parameter for AssertionStdOperators."
                          }
                        ],
                        "name": "value",
                        "default": null,
                        "doc": "The value parameter of an assertion"
                      },
                      {
                        "type": [
                          "null",
                          "com.linkedin.pegasus2avro.assertion.AssertionStdParameter"
                        ],
                        "name": "maxValue",
                        "default": null,
                        "doc": "The maxValue parameter of an assertion"
                      },
                      {
                        "type": [
                          "null",
                          "com.linkedin.pegasus2avro.assertion.AssertionStdParameter"
                        ],
                        "name": "minValue",
                        "default": null,
                        "doc": "The minValue parameter of an assertion"
                      }
                    ],
                    "doc": "Parameters for AssertionStdOperators."
                  }
                ],
                "name": "parameters",
                "default": null,
                "doc": "Standard parameters required for the assertion. e.g. min_value, max_value, value, columns"
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "nativeType",
                "default": null,
                "doc": "Native assertion type"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "map",
                    "values": "string"
                  }
                ],
                "name": "nativeParameters",
                "default": null,
                "doc": "Native parameters required for the assertion."
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "logic",
                "default": null
              }
            ],
            "doc": "Attributes that are applicable to single-Dataset Assertions"
          }
        ],
        "name": "datasetAssertion",
        "default": null,
        "doc": "Dataset Assertion information when type is DATASET"
      }
    ],
    "doc": "Information about an assertion"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "assertionRunEvent",
      "type": "timeseries"
    },
    "name": "AssertionRunEvent",
    "namespace": "com.linkedin.pegasus2avro.assertion",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "TimeWindowSize",
            "namespace": "com.linkedin.pegasus2avro.timeseries",
            "fields": [
              {
                "type": {
                  "type": "enum",
                  "name": "CalendarInterval",
                  "namespace": "com.linkedin.pegasus2avro.timeseries",
                  "symbols": [
                    "SECOND",
                    "MINUTE",
                    "HOUR",
                    "DAY",
                    "WEEK",
                    "MONTH",
                    "QUARTER",
                    "YEAR"
                  ]
                },
                "name": "unit",
                "doc": "Interval unit such as minute/hour/day etc."
              },
              {
                "type": "int",
                "name": "multiple",
                "default": 1,
                "doc": "How many units. Defaults to 1."
              }
            ],
            "doc": "Defines the size of a time window."
          }
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          {
            "type": "record",
            "name": "PartitionSpec",
            "namespace": "com.linkedin.pegasus2avro.timeseries",
            "fields": [
              {
                "type": {
                  "type": "enum",
                  "name": "PartitionType",
                  "namespace": "com.linkedin.pegasus2avro.timeseries",
                  "symbols": [
                    "FULL_TABLE",
                    "QUERY",
                    "PARTITION"
                  ]
                },
                "name": "type",
                "default": "PARTITION"
              },
              {
                "TimeseriesField": {},
                "type": "string",
                "name": "partition",
                "doc": "String representation of the partition"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "record",
                    "name": "TimeWindow",
                    "namespace": "com.linkedin.pegasus2avro.timeseries",
                    "fields": [
                      {
                        "type": "long",
                        "name": "startTimeMillis",
                        "doc": "Start time as epoch at UTC."
                      },
                      {
                        "type": "com.linkedin.pegasus2avro.timeseries.TimeWindowSize",
                        "name": "length",
                        "doc": "The length of the window."
                      }
                    ]
                  }
                ],
                "name": "timePartition",
                "default": null,
                "doc": "Time window of the partition if applicable"
              }
            ],
            "doc": "Defines how the data is partitioned"
          },
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "type": "string",
        "name": "runId",
        "doc": " Native (platform-specific) identifier for this run"
      },
      {
        "TimeseriesField": {},
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "assertionUrn"
      },
      {
        "TimeseriesField": {},
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "asserteeUrn"
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "BatchSpec",
            "namespace": "com.linkedin.pegasus2avro.assertion",
            "fields": [
              {
                "Searchable": {
                  "/*": {
                    "queryByDefault": true
                  }
                },
                "type": {
                  "type": "map",
                  "values": "string"
                },
                "name": "customProperties",
                "default": {},
                "doc": "Custom property bag."
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "nativeBatchId",
                "default": null,
                "doc": "The native identifier as specified by the system operating on the batch."
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "query",
                "default": null,
                "doc": "A query that identifies a batch of data"
              },
              {
                "type": [
                  "null",
                  "int"
                ],
                "name": "limit",
                "default": null,
                "doc": "Any limit to the number of rows in the batch, if applied"
              }
            ],
            "doc": "A batch on which certain operations, e.g. data quality evaluation, is done."
          }
        ],
        "name": "batchSpec",
        "default": null,
        "doc": "Specification of the batch which this run is evaluating"
      },
      {
        "TimeseriesField": {},
        "type": {
          "type": "enum",
          "symbolDocs": {
            "COMPLETE": "The Assertion Run has completed"
          },
          "name": "AssertionRunStatus",
          "namespace": "com.linkedin.pegasus2avro.assertion",
          "symbols": [
            "COMPLETE"
          ]
        },
        "name": "status",
        "doc": "The status of the assertion run as per this timeseries event."
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "AssertionResult",
            "namespace": "com.linkedin.pegasus2avro.assertion",
            "fields": [
              {
                "TimeseriesField": {},
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "FAILURE": " The Assertion Failed",
                    "SUCCESS": " The Assertion Succeeded"
                  },
                  "name": "AssertionResultType",
                  "namespace": "com.linkedin.pegasus2avro.assertion",
                  "symbols": [
                    "SUCCESS",
                    "FAILURE"
                  ]
                },
                "name": "type",
                "doc": " The final result, e.g. either SUCCESS or FAILURE."
              },
              {
                "type": [
                  "null",
                  "long"
                ],
                "name": "rowCount",
                "default": null,
                "doc": "Number of rows for evaluated batch"
              },
              {
                "type": [
                  "null",
                  "long"
                ],
                "name": "missingCount",
                "default": null,
                "doc": "Number of rows with missing value for evaluated batch"
              },
              {
                "type": [
                  "null",
                  "long"
                ],
                "name": "unexpectedCount",
                "default": null,
                "doc": "Number of rows with unexpected value for evaluated batch"
              },
              {
                "type": [
                  "null",
                  "float"
                ],
                "name": "actualAggValue",
                "default": null,
                "doc": "Observed aggregate value for evaluated batch"
              },
              {
                "type": [
                  "null",
                  {
                    "type": "map",
                    "values": "string"
                  }
                ],
                "name": "nativeResults",
                "default": null,
                "doc": "Other results of evaluation"
              },
              {
                "type": [
                  "null",
                  "string"
                ],
                "name": "externalUrl",
                "default": null,
                "doc": "URL where full results are available"
              }
            ],
            "doc": "The result of running an assertion"
          }
        ],
        "name": "result",
        "default": null,
        "doc": "Results of assertion, present if the status is COMPLETE"
      },
      {
        "type": [
          "null",
          {
            "type": "map",
            "values": "string"
          }
        ],
        "name": "runtimeContext",
        "default": null,
        "doc": "Runtime parameters of evaluation"
      }
    ],
    "doc": "An event representing the current status of evaluating an assertion on a batch.\nAssertionRunEvent should be used for reporting the status of a run as an assertion evaluation progresses."
  },
  "com.linkedin.pegasus2avro.chart.ChartInfo",
  "com.linkedin.pegasus2avro.chart.ChartQuery",
  "com.linkedin.pegasus2avro.chart.EditableChartProperties",
  "com.linkedin.pegasus2avro.common.BrowsePaths",
  "com.linkedin.pegasus2avro.common.Cost",
  "com.linkedin.pegasus2avro.common.DataPlatformInstance",
  "com.linkedin.pegasus2avro.common.Deprecation",
  "com.linkedin.pegasus2avro.common.GlobalTags",
  "com.linkedin.pegasus2avro.common.GlossaryTerms",
  "com.linkedin.pegasus2avro.common.InstitutionalMemory",
  {
    "type": "record",
    "Aspect": {
      "name": "operation",
      "type": "timeseries"
    },
    "name": "Operation",
    "namespace": "com.linkedin.pegasus2avro.common",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "TimeseriesField": {},
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "actor",
        "default": null,
        "doc": "Actor who issued this operation."
      },
      {
        "TimeseriesField": {},
        "type": {
          "type": "enum",
          "symbolDocs": {
            "ALTER": "Asset was altered",
            "CREATE": "Asset was created",
            "CUSTOM": "Custom asset operation",
            "DELETE": "Rows were deleted",
            "DROP": "Asset was dropped",
            "INSERT": "Rows were inserted",
            "UPDATE": "Rows were updated"
          },
          "name": "OperationType",
          "namespace": "com.linkedin.pegasus2avro.common",
          "symbols": [
            "INSERT",
            "UPDATE",
            "DELETE",
            "CREATE",
            "ALTER",
            "DROP",
            "CUSTOM",
            "UNKNOWN"
          ],
          "doc": "Enum to define the operation type when an entity changes."
        },
        "name": "operationType",
        "doc": "Operation type of change."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "string"
        ],
        "name": "customOperationType",
        "default": null,
        "doc": "A custom type of operation. Required if operationType is CUSTOM."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "long"
        ],
        "name": "numAffectedRows",
        "default": null,
        "doc": "How many rows were affected by this operation."
      },
      {
        "TimeseriesFieldCollection": {
          "key": "datasetName"
        },
        "type": [
          "null",
          {
            "type": "array",
            "items": "string"
          }
        ],
        "name": "affectedDatasets",
        "default": null,
        "doc": "Which other datasets were affected by this operation."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          {
            "type": "enum",
            "symbolDocs": {
              "DATA_PLATFORM": "Rows were updated",
              "DATA_PROCESS": "Provided by a Data Process"
            },
            "name": "OperationSourceType",
            "namespace": "com.linkedin.pegasus2avro.common",
            "symbols": [
              "DATA_PROCESS",
              "DATA_PLATFORM"
            ],
            "doc": "The source of an operation"
          }
        ],
        "name": "sourceType",
        "default": null,
        "doc": "Source Type"
      },
      {
        "type": [
          "null",
          {
            "type": "map",
            "values": "string"
          }
        ],
        "name": "customProperties",
        "default": null,
        "doc": "Custom properties"
      },
      {
        "TimeseriesField": {},
        "type": "long",
        "name": "lastUpdatedTimestamp",
        "doc": "The time at which the operation occurred."
      }
    ],
    "doc": "Operational info for an entity."
  },
  "com.linkedin.pegasus2avro.common.Ownership",
  "com.linkedin.pegasus2avro.common.Status",
  {
    "type": "record",
    "Aspect": {
      "name": "subTypes"
    },
    "name": "SubTypes",
    "namespace": "com.linkedin.pegasus2avro.common",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "addToFilters": true,
            "fieldType": "KEYWORD",
            "filterNameOverride": "Sub Type",
            "queryByDefault": true
          }
        },
        "type": {
          "type": "array",
          "items": "string"
        },
        "name": "typeNames",
        "doc": "The names of the specific types."
      }
    ],
    "doc": "Sub Types. Use this aspect to specialize a generic Entity\ne.g. Making a Dataset also be a View or also be a LookerExplore"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "container"
    },
    "name": "Container",
    "namespace": "com.linkedin.pegasus2avro.container",
    "fields": [
      {
        "Relationship": {
          "entityTypes": [
            "container"
          ],
          "name": "IsPartOf"
        },
        "Searchable": {
          "addToFilters": true,
          "fieldName": "container",
          "fieldType": "URN",
          "filterNameOverride": "Container",
          "hasValuesFieldName": "hasContainer"
        },
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "container",
        "doc": "The parent container of an asset"
      }
    ],
    "doc": "Link from an asset to its parent container"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "containerProperties"
    },
    "name": "ContainerProperties",
    "namespace": "com.linkedin.pegasus2avro.container",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "queryByDefault": true
          }
        },
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "customProperties",
        "default": {},
        "doc": "Custom property bag."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "Searchable": {
          "boostScore": 10.0,
          "enableAutocomplete": true,
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "Display name of the Asset Container"
      },
      {
        "Searchable": {
          "boostScore": 10.0,
          "enableAutocomplete": true,
          "fieldType": "TEXT_PARTIAL"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "qualifiedName",
        "default": null,
        "doc": "Fully-qualified name of the Container"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the Asset Container as it exists inside a source system"
      }
    ],
    "doc": "Information about a Asset Container as received from a 3rd party source system"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "editableContainerProperties"
    },
    "name": "EditableContainerProperties",
    "namespace": "com.linkedin.pegasus2avro.container",
    "fields": [
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the Asset Container as its received on the DataHub Platform"
      }
    ],
    "doc": "Editable information about an Asset Container as defined on the DataHub Platform"
  },
  "com.linkedin.pegasus2avro.dashboard.DashboardInfo",
  "com.linkedin.pegasus2avro.dashboard.EditableDashboardProperties",
  "com.linkedin.pegasus2avro.datajob.DataFlowInfo",
  "com.linkedin.pegasus2avro.datajob.DataJobInfo",
  "com.linkedin.pegasus2avro.datajob.DataJobInputOutput",
  "com.linkedin.pegasus2avro.datajob.EditableDataFlowProperties",
  "com.linkedin.pegasus2avro.datajob.EditableDataJobProperties",
  {
    "type": "record",
    "Aspect": {
      "name": "versionInfo"
    },
    "name": "VersionInfo",
    "namespace": "com.linkedin.pegasus2avro.datajob",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "queryByDefault": true
          }
        },
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "customProperties",
        "default": {},
        "doc": "Custom property bag."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "type": "string",
        "name": "version",
        "doc": "The version which can indentify a job version like a commit hash or md5 hash"
      },
      {
        "type": "string",
        "name": "versionType",
        "doc": "The type of the version like git hash or md5 hash"
      }
    ],
    "doc": "Information about a Data processing job"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "datahubIngestionCheckpoint",
      "type": "timeseries"
    },
    "name": "DatahubIngestionCheckpoint",
    "namespace": "com.linkedin.pegasus2avro.datajob.datahub",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "pipelineName",
        "doc": "The name of the pipeline that ran ingestion, a stable unique user provided identifier.\n e.g. my_snowflake1-to-datahub."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "platformInstanceId",
        "doc": "The id of the instance against which the ingestion pipeline ran.\ne.g.: Bigquery project ids, MySQL hostnames etc."
      },
      {
        "type": "string",
        "name": "config",
        "doc": "Json-encoded string representation of the non-secret members of the config ."
      },
      {
        "type": {
          "type": "record",
          "name": "IngestionCheckpointState",
          "namespace": "com.linkedin.pegasus2avro.datajob.datahub",
          "fields": [
            {
              "type": "string",
              "name": "formatVersion",
              "doc": "The version of the state format."
            },
            {
              "type": "string",
              "name": "serde",
              "doc": "The serialization/deserialization protocol."
            },
            {
              "type": [
                "null",
                "bytes"
              ],
              "name": "payload",
              "default": null,
              "doc": "Opaque blob of the state representation."
            }
          ],
          "doc": "The checkpoint state object of a datahub ingestion run for a given job."
        },
        "name": "state",
        "doc": "Opaque blob of the state representation."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "runId",
        "doc": "The run identifier of this job."
      }
    ],
    "doc": "Checkpoint of a datahub ingestion run for a given job."
  },
  {
    "type": "record",
    "Aspect": {
      "name": "datahubIngestionRunSummary",
      "type": "timeseries"
    },
    "name": "DatahubIngestionRunSummary",
    "namespace": "com.linkedin.pegasus2avro.datajob.datahub",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "pipelineName",
        "doc": "The name of the pipeline that ran ingestion, a stable unique user provided identifier.\n e.g. my_snowflake1-to-datahub."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "platformInstanceId",
        "doc": "The id of the instance against which the ingestion pipeline ran.\ne.g.: Bigquery project ids, MySQL hostnames etc."
      },
      {
        "TimeseriesField": {},
        "type": "string",
        "name": "runId",
        "doc": "The runId for this pipeline instance."
      },
      {
        "TimeseriesField": {},
        "type": "com.linkedin.pegasus2avro.datajob.JobStatus",
        "name": "runStatus",
        "doc": "Run Status - Succeeded/Skipped/Failed etc."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numWorkUnitsCommitted",
        "default": null,
        "doc": "The number of workunits written to sink."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numWorkUnitsCreated",
        "default": null,
        "doc": "The number of workunits that are produced."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numEvents",
        "default": null,
        "doc": "The number of events produced (MCE + MCP)."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numEntities",
        "default": null,
        "doc": "The total number of entities produced (unique entity urns)."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numAspects",
        "default": null,
        "doc": "The total number of aspects produced across all entities."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numSourceAPICalls",
        "default": null,
        "doc": "Total number of source API calls."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "totalLatencySourceAPICalls",
        "default": null,
        "doc": "Total latency across all source API calls."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numSinkAPICalls",
        "default": null,
        "doc": "Total number of sink API calls."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "totalLatencySinkAPICalls",
        "default": null,
        "doc": "Total latency across all sink API calls."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numWarnings",
        "default": null,
        "doc": "Number of warnings generated."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numErrors",
        "default": null,
        "doc": "Number of errors generated."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "numEntitiesSkipped",
        "default": null,
        "doc": "Number of entities skipped."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "config",
        "default": null,
        "doc": "The non-sensitive key-value pairs of the yaml config used as json string."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "custom_summary",
        "default": null,
        "doc": "Custom value."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "string"
        ],
        "name": "softwareVersion",
        "default": null,
        "doc": "The software version of this ingestion."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "systemHostName",
        "default": null,
        "doc": "The hostname the ingestion pipeline ran on."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "string"
        ],
        "name": "operatingSystemName",
        "default": null,
        "doc": "The os the ingestion pipeline ran on."
      },
      {
        "type": [
          "null",
          "int"
        ],
        "name": "numProcessors",
        "default": null,
        "doc": "The number of processors on the host the ingestion pipeline ran on."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "totalMemory",
        "default": null,
        "doc": "The total amount of memory on the host the ingestion pipeline ran on."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "availableMemory",
        "default": null,
        "doc": "The available memory on the host the ingestion pipeline ran on."
      }
    ],
    "doc": "Summary of a datahub ingestion run for a given platform."
  },
  "com.linkedin.pegasus2avro.dataplatform.DataPlatformInfo",
  "com.linkedin.pegasus2avro.dataprocess.DataProcessInfo",
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceInput"
    },
    "name": "DataProcessInstanceInput",
    "namespace": "com.linkedin.pegasus2avro.dataprocess",
    "fields": [
      {
        "Relationship": {
          "/*": {
            "entityTypes": [
              "dataset"
            ],
            "name": "Consumes"
          }
        },
        "Searchable": {
          "/*": {
            "addToFilters": true,
            "fieldName": "inputs",
            "fieldType": "URN",
            "numValuesFieldName": "numInputs",
            "queryByDefault": false
          }
        },
        "type": {
          "type": "array",
          "items": "string"
        },
        "name": "inputs",
        "doc": "Input datasets to be consumed"
      }
    ],
    "doc": "Information about the inputs datasets of a Data process"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceOutput"
    },
    "name": "DataProcessInstanceOutput",
    "namespace": "com.linkedin.pegasus2avro.dataprocess",
    "fields": [
      {
        "Relationship": {
          "/*": {
            "entityTypes": [
              "dataset"
            ],
            "name": "Produces"
          }
        },
        "Searchable": {
          "/*": {
            "addToFilters": true,
            "fieldName": "outputs",
            "fieldType": "URN",
            "numValuesFieldName": "numOutputs",
            "queryByDefault": false
          }
        },
        "type": {
          "type": "array",
          "items": "string"
        },
        "name": "outputs",
        "doc": "Output datasets to be produced"
      }
    ],
    "doc": "Information about the outputs of a Data process"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceProperties"
    },
    "name": "DataProcessInstanceProperties",
    "namespace": "com.linkedin.pegasus2avro.dataprocess",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "queryByDefault": true
          }
        },
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "customProperties",
        "default": {},
        "doc": "Custom property bag."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "Searchable": {
          "boostScore": 10.0,
          "enableAutocomplete": true,
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "Process name"
      },
      {
        "Searchable": {
          "addToFilters": true,
          "fieldType": "KEYWORD",
          "filterNameOverride": "Process Type"
        },
        "type": [
          "null",
          {
            "type": "enum",
            "name": "DataProcessType",
            "namespace": "com.linkedin.pegasus2avro.dataprocess",
            "symbols": [
              "BATCH_SCHEDULED",
              "BATCH_AD_HOC",
              "STREAMING"
            ]
          }
        ],
        "name": "type",
        "default": null,
        "doc": "Process type"
      },
      {
        "Searchable": {
          "/time": {
            "fieldName": "created",
            "fieldType": "COUNT",
            "queryByDefault": false
          }
        },
        "type": "com.linkedin.pegasus2avro.common.AuditStamp",
        "name": "created",
        "doc": "Audit stamp containing who reported the lineage and when"
      }
    ],
    "doc": "The inputs and outputs of this data process"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceRelationships"
    },
    "name": "DataProcessInstanceRelationships",
    "namespace": "com.linkedin.pegasus2avro.dataprocess",
    "fields": [
      {
        "Relationship": {
          "entityTypes": [
            "dataJob",
            "dataFlow"
          ],
          "name": "InstanceOf"
        },
        "Searchable": {
          "/*": {
            "fieldName": "parentTemplate",
            "fieldType": "URN",
            "queryByDefault": false
          }
        },
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "parentTemplate",
        "default": null,
        "doc": "The parent entity whose run instance it is"
      },
      {
        "Relationship": {
          "entityTypes": [
            "dataProcessInstance"
          ],
          "name": "ChildOf"
        },
        "Searchable": {
          "/*": {
            "fieldName": "parentInstance",
            "fieldType": "URN",
            "queryByDefault": false
          }
        },
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "parentInstance",
        "default": null,
        "doc": "The parent DataProcessInstance where it belongs to.\nIf it is a Airflow Task then it should belong to an Airflow Dag run as well\nwhich will be another DataProcessInstance"
      },
      {
        "Relationship": {
          "/*": {
            "entityTypes": [
              "dataProcessInstance"
            ],
            "name": "UpstreamOf"
          }
        },
        "Searchable": {
          "/*": {
            "fieldName": "upstream",
            "fieldType": "URN",
            "numValuesFieldName": "numUpstreams",
            "queryByDefault": false
          }
        },
        "type": {
          "type": "array",
          "items": "string"
        },
        "name": "upstreamInstances",
        "doc": "Input DataProcessInstance which triggered this dataprocess instance"
      }
    ],
    "doc": "Information about Data process relationships"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceRunEvent",
      "type": "timeseries"
    },
    "name": "DataProcessInstanceRunEvent",
    "namespace": "com.linkedin.pegasus2avro.dataprocess",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "TimeseriesField": {},
        "type": {
          "type": "enum",
          "symbolDocs": {
            "STARTED": "The status where the Data processing run is in."
          },
          "name": "DataProcessRunStatus",
          "namespace": "com.linkedin.pegasus2avro.dataprocess",
          "symbols": [
            "STARTED",
            "COMPLETE"
          ]
        },
        "name": "status"
      },
      {
        "type": [
          "null",
          "int"
        ],
        "name": "attempt",
        "default": null,
        "doc": "Return the try number that this Instance Run is in"
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          {
            "type": "record",
            "name": "DataProcessInstanceRunResult",
            "namespace": "com.linkedin.pegasus2avro.dataprocess",
            "fields": [
              {
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "FAILURE": " The Run Failed",
                    "SKIPPED": " The Run Skipped",
                    "SUCCESS": " The Run Succeeded"
                  },
                  "name": "RunResultType",
                  "namespace": "com.linkedin.pegasus2avro.dataprocess",
                  "symbols": [
                    "SUCCESS",
                    "FAILURE",
                    "SKIPPED"
                  ]
                },
                "name": "type",
                "doc": " The final result, e.g. SUCCESS, FAILURE or SKIPPED."
              },
              {
                "type": "string",
                "name": "nativeResultType",
                "doc": "It identifies the system where the native result comes from like Airflow, Azkaban, etc.."
              }
            ]
          }
        ],
        "name": "result",
        "default": null,
        "doc": "The final result of the Data Processing run."
      }
    ],
    "doc": "An event representing the current status of data process run.\nDataProcessRunEvent should be used for reporting the status of a dataProcess' run."
  },
  "com.linkedin.pegasus2avro.dataset.DatasetDeprecation",
  {
    "type": "record",
    "Aspect": {
      "name": "datasetProfile",
      "type": "timeseries"
    },
    "name": "DatasetProfile",
    "namespace": "com.linkedin.pegasus2avro.dataset",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "rowCount",
        "default": null
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "columnCount",
        "default": null
      },
      {
        "type": [
          "null",
          {
            "type": "array",
            "items": {
              "type": "record",
              "name": "DatasetFieldProfile",
              "namespace": "com.linkedin.pegasus2avro.dataset",
              "fields": [
                {
                  "type": "string",
                  "name": "fieldPath"
                },
                {
                  "type": [
                    "null",
                    "long"
                  ],
                  "name": "uniqueCount",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "float"
                  ],
                  "name": "uniqueProportion",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "long"
                  ],
                  "name": "nullCount",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "float"
                  ],
                  "name": "nullProportion",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "min",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "max",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "mean",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "median",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "stdev",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    {
                      "type": "array",
                      "items": {
                        "type": "record",
                        "name": "Quantile",
                        "namespace": "com.linkedin.pegasus2avro.dataset",
                        "fields": [
                          {
                            "type": "string",
                            "name": "quantile"
                          },
                          {
                            "type": "string",
                            "name": "value"
                          }
                        ]
                      }
                    }
                  ],
                  "name": "quantiles",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    {
                      "type": "array",
                      "items": {
                        "type": "record",
                        "name": "ValueFrequency",
                        "namespace": "com.linkedin.pegasus2avro.dataset",
                        "fields": [
                          {
                            "type": "string",
                            "name": "value"
                          },
                          {
                            "type": "long",
                            "name": "frequency"
                          }
                        ]
                      }
                    }
                  ],
                  "name": "distinctValueFrequencies",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    {
                      "type": "record",
                      "name": "Histogram",
                      "namespace": "com.linkedin.pegasus2avro.dataset",
                      "fields": [
                        {
                          "type": {
                            "type": "array",
                            "items": "string"
                          },
                          "name": "boundaries"
                        },
                        {
                          "type": {
                            "type": "array",
                            "items": "float"
                          },
                          "name": "heights"
                        }
                      ]
                    }
                  ],
                  "name": "histogram",
                  "default": null
                },
                {
                  "type": [
                    "null",
                    {
                      "type": "array",
                      "items": "string"
                    }
                  ],
                  "name": "sampleValues",
                  "default": null
                }
              ],
              "doc": "Stats corresponding to fields in a dataset"
            }
          }
        ],
        "name": "fieldProfiles",
        "default": null
      }
    ],
    "doc": "Stats corresponding to datasets"
  },
  "com.linkedin.pegasus2avro.dataset.DatasetProperties",
  "com.linkedin.pegasus2avro.dataset.DatasetUpstreamLineage",
  {
    "type": "record",
    "Aspect": {
      "name": "datasetUsageStatistics",
      "type": "timeseries"
    },
    "name": "DatasetUsageStatistics",
    "namespace": "com.linkedin.pegasus2avro.dataset",
    "fields": [
      {
        "type": "long",
        "name": "timestampMillis",
        "doc": "The event timestamp field as epoch at UTC in milli seconds."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.timeseries.TimeWindowSize"
        ],
        "name": "eventGranularity",
        "default": null,
        "doc": "Granularity of the event if applicable"
      },
      {
        "type": [
          "com.linkedin.pegasus2avro.timeseries.PartitionSpec",
          "null"
        ],
        "name": "partitionSpec",
        "default": {
          "partition": "FULL_TABLE_SNAPSHOT",
          "type": "FULL_TABLE",
          "timePartition": null
        },
        "doc": "The optional partition specification."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "messageId",
        "default": null,
        "doc": "The optional messageId, if provided serves as a custom user-defined unique identifier for an aspect value."
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "int"
        ],
        "name": "uniqueUserCount",
        "default": null,
        "doc": "Unique user count"
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          "int"
        ],
        "name": "totalSqlQueries",
        "default": null,
        "doc": "Total SQL query count"
      },
      {
        "TimeseriesField": {},
        "type": [
          "null",
          {
            "type": "array",
            "items": "string"
          }
        ],
        "name": "topSqlQueries",
        "default": null,
        "doc": "Frequent SQL queries; mostly makes sense for datasets in SQL databases"
      },
      {
        "TimeseriesFieldCollection": {
          "key": "user"
        },
        "type": [
          "null",
          {
            "type": "array",
            "items": {
              "type": "record",
              "name": "DatasetUserUsageCounts",
              "namespace": "com.linkedin.pegasus2avro.dataset",
              "fields": [
                {
                  "java": {
                    "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                  },
                  "type": "string",
                  "name": "user",
                  "doc": "The unique id of the user."
                },
                {
                  "TimeseriesField": {},
                  "type": "int",
                  "name": "count",
                  "doc": "Number of times the dataset has been used by the user."
                },
                {
                  "TimeseriesField": {},
                  "type": [
                    "null",
                    "string"
                  ],
                  "name": "userEmail",
                  "default": null,
                  "doc": "If user_email is set, we attempt to resolve the user's urn upon ingest"
                }
              ],
              "doc": "Records a single user's usage counts for a given resource"
            }
          }
        ],
        "name": "userCounts",
        "default": null,
        "doc": "Users within this bucket, with frequency counts"
      },
      {
        "TimeseriesFieldCollection": {
          "key": "fieldPath"
        },
        "type": [
          "null",
          {
            "type": "array",
            "items": {
              "type": "record",
              "name": "DatasetFieldUsageCounts",
              "namespace": "com.linkedin.pegasus2avro.dataset",
              "fields": [
                {
                  "type": "string",
                  "name": "fieldPath",
                  "doc": "The name of the field."
                },
                {
                  "TimeseriesField": {},
                  "type": "int",
                  "name": "count",
                  "doc": "Number of times the field has been used."
                }
              ],
              "doc": "Records field-level usage counts for a given dataset"
            }
          }
        ],
        "name": "fieldCounts",
        "default": null,
        "doc": "Field-level usage stats"
      }
    ],
    "doc": "Stats corresponding to dataset's usage."
  },
  "com.linkedin.pegasus2avro.dataset.EditableDatasetProperties",
  "com.linkedin.pegasus2avro.dataset.UpstreamLineage",
  "com.linkedin.pegasus2avro.dataset.ViewProperties",
  {
    "type": "record",
    "Aspect": {
      "name": "domainProperties"
    },
    "name": "DomainProperties",
    "namespace": "com.linkedin.pegasus2avro.domain",
    "fields": [
      {
        "Searchable": {
          "boostScore": 10.0,
          "enableAutocomplete": true,
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "Display name of the Domain"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the Domain"
      }
    ],
    "doc": "Information about a Domain"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "domains"
    },
    "name": "Domains",
    "namespace": "com.linkedin.pegasus2avro.domain",
    "fields": [
      {
        "Relationship": {
          "/*": {
            "entityTypes": [
              "domain"
            ],
            "name": "AssociatedWith"
          }
        },
        "Searchable": {
          "/*": {
            "addToFilters": true,
            "fieldName": "domains",
            "fieldType": "URN",
            "filterNameOverride": "Domain",
            "hasValuesFieldName": "hasDomain"
          }
        },
        "type": {
          "type": "array",
          "items": "string"
        },
        "name": "domains",
        "doc": "The Domains attached to an Asset"
      }
    ],
    "doc": "Links from an Asset to its Domains"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubExecutionRequestInput"
    },
    "name": "ExecutionRequestInput",
    "namespace": "com.linkedin.pegasus2avro.execution",
    "fields": [
      {
        "type": "string",
        "name": "task",
        "doc": "The name of the task to execute, for example RUN_INGEST"
      },
      {
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "args",
        "doc": "Arguments provided to the task"
      },
      {
        "type": "string",
        "name": "executorId",
        "doc": "Advanced: specify a specific executor to route the request to. If none is provided, a \"default\" executor is used."
      },
      {
        "type": {
          "type": "record",
          "name": "ExecutionRequestSource",
          "namespace": "com.linkedin.pegasus2avro.execution",
          "fields": [
            {
              "type": "string",
              "name": "type",
              "doc": "The type of the execution request source, e.g. INGESTION_SOURCE"
            },
            {
              "Relationship": {
                "entityTypes": [
                  "dataHubIngestionSource"
                ],
                "name": "ingestionSource"
              },
              "Searchable": {
                "fieldName": "ingestionSource",
                "fieldType": "KEYWORD",
                "queryByDefault": false
              },
              "java": {
                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
              },
              "type": [
                "null",
                "string"
              ],
              "name": "ingestionSource",
              "default": null,
              "doc": "The urn of the ingestion source associated with the ingestion request. Present if type is INGESTION_SOURCE"
            }
          ]
        },
        "name": "source",
        "doc": "Source which created the execution request"
      },
      {
        "Searchable": {
          "fieldName": "requestTimeMs",
          "fieldType": "COUNT",
          "queryByDefault": false
        },
        "type": "long",
        "name": "requestedAt",
        "doc": "Time at which the execution request input was created"
      }
    ],
    "doc": "An request to execution some remote logic or action.\nTODO: Determine who is responsible for emitting execution request success or failure. Executor?"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubExecutionRequestResult"
    },
    "name": "ExecutionRequestResult",
    "namespace": "com.linkedin.pegasus2avro.execution",
    "fields": [
      {
        "type": "string",
        "name": "status",
        "doc": "The status of the execution request"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "report",
        "default": null,
        "doc": "The pretty-printed execution report."
      },
      {
        "Searchable": {
          "fieldName": "startTimeMs",
          "fieldType": "COUNT",
          "queryByDefault": false
        },
        "type": [
          "null",
          "long"
        ],
        "name": "startTimeMs",
        "default": null,
        "doc": "Time at which the request was created"
      },
      {
        "type": [
          "null",
          "long"
        ],
        "name": "durationMs",
        "default": null,
        "doc": "Duration in milliseconds"
      }
    ],
    "doc": "The result of an execution request"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubExecutionRequestSignal"
    },
    "name": "ExecutionRequestSignal",
    "namespace": "com.linkedin.pegasus2avro.execution",
    "fields": [
      {
        "type": "string",
        "name": "signal",
        "doc": "The signal to issue, e.g. KILL"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "executorId",
        "default": null,
        "doc": "Advanced: specify a specific executor to route the request to. If none is provided, a \"default\" executor is used."
      },
      {
        "type": "com.linkedin.pegasus2avro.common.AuditStamp",
        "name": "createdAt",
        "doc": "Audit Stamp"
      }
    ],
    "doc": "An signal sent to a running execution request"
  },
  "com.linkedin.pegasus2avro.glossary.GlossaryNodeInfo",
  "com.linkedin.pegasus2avro.glossary.GlossaryRelatedTerms",
  "com.linkedin.pegasus2avro.glossary.GlossaryTermInfo",
  {
    "type": "record",
    "Aspect": {
      "name": "corpGroupEditableInfo"
    },
    "name": "CorpGroupEditableInfo",
    "namespace": "com.linkedin.pegasus2avro.identity",
    "fields": [
      {
        "Searchable": {
          "fieldName": "editedDescription",
          "fieldType": "TEXT"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "A description of the group"
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": "string",
        "name": "pictureLink",
        "default": "https://raw.githubusercontent.com/datahub-project/datahub/master/datahub-web-react/src/images/default_avatar.png",
        "doc": "A URL which points to a picture which user wants to set as the photo for the group"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "slack",
        "default": null,
        "doc": "Slack channel for the group"
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "email",
        "default": null,
        "doc": "Email address to contact the group"
      }
    ],
    "doc": "Group information that can be edited from UI"
  },
  "com.linkedin.pegasus2avro.identity.CorpGroupInfo",
  "com.linkedin.pegasus2avro.identity.CorpUserEditableInfo",
  "com.linkedin.pegasus2avro.identity.CorpUserInfo",
  "com.linkedin.pegasus2avro.identity.CorpUserStatus",
  "com.linkedin.pegasus2avro.identity.GroupMembership",
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubIngestionSourceInfo"
    },
    "name": "DataHubIngestionSourceInfo",
    "namespace": "com.linkedin.pegasus2avro.ingestion",
    "fields": [
      {
        "Searchable": {
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "The display name of the ingestion source"
      },
      {
        "type": "string",
        "name": "type",
        "doc": "The type of the source itself, e.g. mysql, bigquery, bigquery-usage. Should match the recipe."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "platform",
        "default": null,
        "doc": "Data Platform URN associated with the source"
      },
      {
        "type": [
          "null",
          {
            "type": "record",
            "name": "DataHubIngestionSourceSchedule",
            "namespace": "com.linkedin.pegasus2avro.ingestion",
            "fields": [
              {
                "type": "string",
                "name": "interval",
                "doc": "A cron-formatted execution interval, as a cron string, e.g. * * * * *"
              },
              {
                "type": "string",
                "name": "timezone",
                "doc": "Timezone in which the cron interval applies, e.g. America/Los Angeles"
              }
            ],
            "doc": "The schedule associated with an ingestion source."
          }
        ],
        "name": "schedule",
        "default": null,
        "doc": "The schedule on which the ingestion source is executed"
      },
      {
        "type": {
          "type": "record",
          "name": "DataHubIngestionSourceConfig",
          "namespace": "com.linkedin.pegasus2avro.ingestion",
          "fields": [
            {
              "type": "string",
              "name": "recipe",
              "doc": "The JSON recipe to use for ingestion"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "version",
              "default": null,
              "doc": "The PyPI version of the datahub CLI to use when executing a recipe"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "executorId",
              "default": null,
              "doc": "The id of the executor to use to execute the ingestion run"
            }
          ]
        },
        "name": "config",
        "doc": "Parameters associated with the Ingestion Source"
      }
    ],
    "doc": "Info about a DataHub ingestion source"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "assertionKey"
    },
    "name": "AssertionKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "assertionId",
        "doc": "Unique id for the assertion."
      }
    ],
    "doc": "Key for a Assertion"
  },
  "com.linkedin.pegasus2avro.metadata.key.ChartKey",
  {
    "type": "record",
    "Aspect": {
      "name": "containerKey"
    },
    "name": "ContainerKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": [
          "null",
          "string"
        ],
        "name": "guid",
        "default": null,
        "doc": "Unique guid for container"
      }
    ],
    "doc": "Key for an Asset Container"
  },
  "com.linkedin.pegasus2avro.metadata.key.CorpGroupKey",
  "com.linkedin.pegasus2avro.metadata.key.CorpUserKey",
  "com.linkedin.pegasus2avro.metadata.key.DashboardKey",
  "com.linkedin.pegasus2avro.metadata.key.DataFlowKey",
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubAccessTokenKey"
    },
    "name": "DataHubAccessTokenKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "Access token's SHA-256 hashed JWT signature"
      }
    ],
    "doc": "Key for a DataHub Access Token"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubIngestionSourceKey"
    },
    "name": "DataHubIngestionSourceKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "A unique id for the Ingestion Source, either generated or provided"
      }
    ],
    "doc": "Key for a DataHub ingestion source"
  },
  "com.linkedin.pegasus2avro.metadata.key.DataHubPolicyKey",
  "com.linkedin.pegasus2avro.metadata.key.DataHubRetentionKey",
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubSecretKey"
    },
    "name": "DataHubSecretKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "A unique id for the Secret"
      }
    ],
    "doc": "Key for a DataHub Secret"
  },
  "com.linkedin.pegasus2avro.metadata.key.DataJobKey",
  {
    "type": "record",
    "Aspect": {
      "name": "dataPlatformInstanceKey"
    },
    "name": "DataPlatformInstanceKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.urn.Urn"
        },
        "type": "string",
        "name": "platform",
        "doc": "Data platform urn associated with the instance"
      },
      {
        "type": "string",
        "name": "instance",
        "doc": "Unique instance id"
      }
    ],
    "doc": "Key for a Dataset"
  },
  "com.linkedin.pegasus2avro.metadata.key.DataPlatformKey",
  {
    "type": "record",
    "Aspect": {
      "name": "dataProcessInstanceKey"
    },
    "name": "DataProcessInstanceKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "A unique id for the DataProcessInstance . Should be separate from the name used for displaying a DataProcessInstance."
      }
    ],
    "doc": "Key for an Asset DataProcessInstance"
  },
  "com.linkedin.pegasus2avro.metadata.key.DataProcessKey",
  "com.linkedin.pegasus2avro.metadata.key.DatasetKey",
  {
    "type": "record",
    "Aspect": {
      "name": "domainKey"
    },
    "name": "DomainKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "A unique id for the domain. Should be separate from the name used for displaying a Domain."
      }
    ],
    "doc": "Key for an Asset Domain"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubExecutionRequestKey"
    },
    "name": "ExecutionRequestKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "A unique id for the DataHub execution request."
      }
    ],
    "doc": "Key for an DataHub Execution Request"
  },
  "com.linkedin.pegasus2avro.metadata.key.GlossaryNodeKey",
  "com.linkedin.pegasus2avro.metadata.key.GlossaryTermKey",
  "com.linkedin.pegasus2avro.metadata.key.MLFeatureKey",
  "com.linkedin.pegasus2avro.metadata.key.MLFeatureTableKey",
  "com.linkedin.pegasus2avro.metadata.key.MLModelDeploymentKey",
  "com.linkedin.pegasus2avro.metadata.key.MLModelGroupKey",
  "com.linkedin.pegasus2avro.metadata.key.MLModelKey",
  "com.linkedin.pegasus2avro.metadata.key.MLPrimaryKeyKey",
  {
    "type": "record",
    "Aspect": {
      "name": "notebookKey"
    },
    "name": "NotebookKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "notebookTool",
        "doc": "The name of the Notebook tool such as QueryBook, etc."
      },
      {
        "type": "string",
        "name": "notebookId",
        "doc": "Unique id for the Notebook. This id should be globally unique for a Notebook tool even when there are multiple deployments of it. As an example, Notebook URL could be used here for QueryBook such as 'querybook.com/notebook/773'"
      }
    ],
    "doc": "Key for a Notebook"
  },
  "com.linkedin.pegasus2avro.metadata.key.SchemaFieldKey",
  "com.linkedin.pegasus2avro.metadata.key.TagKey",
  {
    "type": "record",
    "Aspect": {
      "name": "telemetryKey"
    },
    "name": "TelemetryKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "name",
        "doc": "The telemetry entity name, which serves as a unique id"
      }
    ],
    "doc": "Key for the telemetry client ID, only one should ever exist"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "testKey"
    },
    "name": "TestKey",
    "namespace": "com.linkedin.pegasus2avro.metadata.key",
    "fields": [
      {
        "type": "string",
        "name": "id",
        "doc": "Unique id for the test"
      }
    ],
    "doc": "Key for a Test"
  },
  "com.linkedin.pegasus2avro.ml.metadata.CaveatsAndRecommendations",
  {
    "type": "record",
    "Aspect": {
      "name": "editableMlFeatureProperties"
    },
    "name": "EditableMLFeatureProperties",
    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
    "fields": [
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Documentation of the MLFeature"
      }
    ],
    "doc": "Properties associated with a MLFeature editable from the UI"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "editableMlFeatureTableProperties"
    },
    "name": "EditableMLFeatureTableProperties",
    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
    "fields": [
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Documentation of the MLFeatureTable"
      }
    ],
    "doc": "Properties associated with a MLFeatureTable editable from the ui"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "editableMlModelGroupProperties"
    },
    "name": "EditableMLModelGroupProperties",
    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
    "fields": [
      {
        "Searchable": {
          "fieldName": "editedDescription",
          "fieldType": "TEXT"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Documentation of the ml model group"
      }
    ],
    "doc": "Properties associated with an ML Model Group editable from the UI"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "editableMlModelProperties"
    },
    "name": "EditableMLModelProperties",
    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
    "fields": [
      {
        "Searchable": {
          "fieldName": "editedDescription",
          "fieldType": "TEXT"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Documentation of the ml model"
      }
    ],
    "doc": "Properties associated with a ML Model editable from the UI"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "editableMlPrimaryKeyProperties"
    },
    "name": "EditableMLPrimaryKeyProperties",
    "namespace": "com.linkedin.pegasus2avro.ml.metadata",
    "fields": [
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Documentation of the MLPrimaryKey"
      }
    ],
    "doc": "Properties associated with a MLPrimaryKey editable from the UI"
  },
  "com.linkedin.pegasus2avro.ml.metadata.EthicalConsiderations",
  "com.linkedin.pegasus2avro.ml.metadata.EvaluationData",
  "com.linkedin.pegasus2avro.ml.metadata.IntendedUse",
  "com.linkedin.pegasus2avro.ml.metadata.MLFeatureProperties",
  "com.linkedin.pegasus2avro.ml.metadata.MLFeatureTableProperties",
  "com.linkedin.pegasus2avro.ml.metadata.MLHyperParam",
  "com.linkedin.pegasus2avro.ml.metadata.MLMetric",
  "com.linkedin.pegasus2avro.ml.metadata.MLModelDeploymentProperties",
  "com.linkedin.pegasus2avro.ml.metadata.MLModelFactorPrompts",
  "com.linkedin.pegasus2avro.ml.metadata.MLModelGroupProperties",
  "com.linkedin.pegasus2avro.ml.metadata.MLModelProperties",
  "com.linkedin.pegasus2avro.ml.metadata.MLPrimaryKeyProperties",
  "com.linkedin.pegasus2avro.ml.metadata.Metrics",
  "com.linkedin.pegasus2avro.ml.metadata.QuantitativeAnalyses",
  "com.linkedin.pegasus2avro.ml.metadata.SourceCode",
  "com.linkedin.pegasus2avro.ml.metadata.TrainingData",
  {
    "type": "record",
    "Aspect": {
      "name": "editableNotebookProperties"
    },
    "name": "EditableNotebookProperties",
    "namespace": "com.linkedin.pegasus2avro.notebook",
    "fields": [
      {
        "type": "com.linkedin.pegasus2avro.common.AuditStamp",
        "name": "created",
        "default": {
          "actor": "urn:li:corpuser:unknown",
          "impersonator": null,
          "time": 0
        },
        "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource. A value of 0 for time indicates missing data."
      },
      {
        "type": "com.linkedin.pegasus2avro.common.AuditStamp",
        "name": "lastModified",
        "default": {
          "actor": "urn:li:corpuser:unknown",
          "impersonator": null,
          "time": 0
        },
        "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created. A value of 0 for time indicates missing data."
      },
      {
        "type": [
          "null",
          "com.linkedin.pegasus2avro.common.AuditStamp"
        ],
        "name": "deleted",
        "default": null,
        "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."
      },
      {
        "Searchable": {
          "fieldName": "editedDescription",
          "fieldType": "TEXT"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Edited documentation of the Notebook"
      }
    ],
    "doc": "Stores editable changes made to properties. This separates changes made from\ningestion pipelines and edits in the UI to avoid accidental overwrites of user-provided data by ingestion pipelines\nNote: This is IN BETA version"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "notebookContent"
    },
    "name": "NotebookContent",
    "namespace": "com.linkedin.pegasus2avro.notebook",
    "fields": [
      {
        "type": {
          "type": "array",
          "items": {
            "type": "record",
            "name": "NotebookCell",
            "namespace": "com.linkedin.pegasus2avro.notebook",
            "fields": [
              {
                "type": [
                  "null",
                  {
                    "type": "record",
                    "name": "TextCell",
                    "namespace": "com.linkedin.pegasus2avro.notebook",
                    "fields": [
                      {
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "cellTitle",
                        "default": null,
                        "doc": "Title of the cell"
                      },
                      {
                        "type": "string",
                        "name": "cellId",
                        "doc": "Unique id for the cell. This id should be globally unique for a Notebook tool even when there are multiple deployments of it. As an example, Notebook URL could be used here for QueryBook such as 'querybook.com/notebook/773/?cellId=1234'"
                      },
                      {
                        "type": "com.linkedin.pegasus2avro.common.ChangeAuditStamps",
                        "name": "changeAuditStamps",
                        "doc": "Captures information about who created/last modified/deleted this Notebook cell and when"
                      },
                      {
                        "type": "string",
                        "name": "text",
                        "doc": "The actual text in a TextCell in a Notebook"
                      }
                    ],
                    "doc": "Text cell in a Notebook, which will present content in text format"
                  }
                ],
                "name": "textCell",
                "default": null,
                "doc": "The text cell content. The will be non-null only when all other cell field is null."
              },
              {
                "type": [
                  "null",
                  {
                    "type": "record",
                    "name": "QueryCell",
                    "namespace": "com.linkedin.pegasus2avro.notebook",
                    "fields": [
                      {
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "cellTitle",
                        "default": null,
                        "doc": "Title of the cell"
                      },
                      {
                        "type": "string",
                        "name": "cellId",
                        "doc": "Unique id for the cell. This id should be globally unique for a Notebook tool even when there are multiple deployments of it. As an example, Notebook URL could be used here for QueryBook such as 'querybook.com/notebook/773/?cellId=1234'"
                      },
                      {
                        "type": "com.linkedin.pegasus2avro.common.ChangeAuditStamps",
                        "name": "changeAuditStamps",
                        "doc": "Captures information about who created/last modified/deleted this Notebook cell and when"
                      },
                      {
                        "type": "string",
                        "name": "rawQuery",
                        "doc": "Raw query to explain some specific logic in a Notebook"
                      },
                      {
                        "type": [
                          "null",
                          "com.linkedin.pegasus2avro.common.AuditStamp"
                        ],
                        "name": "lastExecuted",
                        "default": null,
                        "doc": "Captures information about who last executed this query cell and when"
                      }
                    ],
                    "doc": "Query cell in a Notebook, which will present content in query format"
                  }
                ],
                "name": "queryCell",
                "default": null,
                "doc": "The query cell content. The will be non-null only when all other cell field is null."
              },
              {
                "type": [
                  "null",
                  {
                    "type": "record",
                    "name": "ChartCell",
                    "namespace": "com.linkedin.pegasus2avro.notebook",
                    "fields": [
                      {
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "cellTitle",
                        "default": null,
                        "doc": "Title of the cell"
                      },
                      {
                        "type": "string",
                        "name": "cellId",
                        "doc": "Unique id for the cell. This id should be globally unique for a Notebook tool even when there are multiple deployments of it. As an example, Notebook URL could be used here for QueryBook such as 'querybook.com/notebook/773/?cellId=1234'"
                      },
                      {
                        "type": "com.linkedin.pegasus2avro.common.ChangeAuditStamps",
                        "name": "changeAuditStamps",
                        "doc": "Captures information about who created/last modified/deleted this Notebook cell and when"
                      }
                    ],
                    "doc": "Chart cell in a notebook, which will present content in chart format"
                  }
                ],
                "name": "chartCell",
                "default": null,
                "doc": "The chart cell content. The will be non-null only when all other cell field is null."
              },
              {
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "CHART_CELL": "CHART Notebook cell type. The cell content is chart only.",
                    "QUERY_CELL": "QUERY Notebook cell type. The cell context is query only.",
                    "TEXT_CELL": "TEXT Notebook cell type. The cell context is text only."
                  },
                  "name": "NotebookCellType",
                  "namespace": "com.linkedin.pegasus2avro.notebook",
                  "symbols": [
                    "TEXT_CELL",
                    "QUERY_CELL",
                    "CHART_CELL"
                  ],
                  "doc": "Type of Notebook Cell"
                },
                "name": "type",
                "doc": "The type of this Notebook cell"
              }
            ],
            "doc": "A record of all supported cells for a Notebook. Only one type of cell will be non-null."
          }
        },
        "name": "cells",
        "default": [],
        "doc": "The content of a Notebook which is composed by a list of NotebookCell"
      }
    ],
    "doc": "Content in a Notebook\nNote: This is IN BETA version"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "notebookInfo"
    },
    "name": "NotebookInfo",
    "namespace": "com.linkedin.pegasus2avro.notebook",
    "fields": [
      {
        "Searchable": {
          "/*": {
            "queryByDefault": true
          }
        },
        "type": {
          "type": "map",
          "values": "string"
        },
        "name": "customProperties",
        "default": {},
        "doc": "Custom property bag."
      },
      {
        "java": {
          "class": "com.linkedin.pegasus2avro.common.url.Url",
          "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "externalUrl",
        "default": null,
        "doc": "URL where the reference exist"
      },
      {
        "Searchable": {
          "boostScore": 10.0,
          "enableAutocomplete": true,
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "title",
        "doc": "Title of the Notebook"
      },
      {
        "Searchable": {
          "fieldType": "TEXT",
          "hasValuesFieldName": "hasDescription"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Detailed description about the Notebook"
      },
      {
        "type": "com.linkedin.pegasus2avro.common.ChangeAuditStamps",
        "name": "changeAuditStamps",
        "doc": "Captures information about who created/last modified/deleted this Notebook and when"
      }
    ],
    "doc": "Information about a Notebook\nNote: This is IN BETA version"
  },
  "com.linkedin.pegasus2avro.policy.DataHubPolicyInfo",
  "com.linkedin.pegasus2avro.retention.DataHubRetentionConfig",
  "com.linkedin.pegasus2avro.schema.EditableSchemaMetadata",
  "com.linkedin.pegasus2avro.schema.SchemaMetadata",
  {
    "type": "record",
    "Aspect": {
      "name": "dataHubSecretValue"
    },
    "name": "DataHubSecretValue",
    "namespace": "com.linkedin.pegasus2avro.secret",
    "fields": [
      {
        "Searchable": {
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "The display name for the secret"
      },
      {
        "type": "string",
        "name": "value",
        "doc": "The AES-encrypted value of the DataHub secret."
      },
      {
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the secret"
      }
    ],
    "doc": "The value of a DataHub Secret"
  },
  "com.linkedin.pegasus2avro.tag.TagProperties",
  {
    "type": "record",
    "Aspect": {
      "name": "telemetryClientId"
    },
    "name": "TelemetryClientId",
    "namespace": "com.linkedin.pegasus2avro.telemetry",
    "fields": [
      {
        "type": "string",
        "name": "clientId",
        "doc": "A string representing the telemetry client ID"
      }
    ],
    "doc": "A simple wrapper around a String to persist the client ID for telemetry in DataHub's backend DB"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "testInfo"
    },
    "name": "TestInfo",
    "namespace": "com.linkedin.pegasus2avro.test",
    "fields": [
      {
        "Searchable": {
          "fieldType": "TEXT_PARTIAL"
        },
        "type": "string",
        "name": "name",
        "doc": "The name of the test"
      },
      {
        "Searchable": {
          "fieldType": "KEYWORD"
        },
        "type": "string",
        "name": "category",
        "doc": "Category of the test"
      },
      {
        "Searchable": {
          "fieldType": "TEXT"
        },
        "type": [
          "null",
          "string"
        ],
        "name": "description",
        "default": null,
        "doc": "Description of the test"
      },
      {
        "type": {
          "type": "record",
          "name": "TestDefinition",
          "namespace": "com.linkedin.pegasus2avro.test",
          "fields": [
            {
              "type": {
                "type": "enum",
                "symbolDocs": {
                  "JSON": "JSON / YAML test def"
                },
                "name": "TestDefinitionType",
                "namespace": "com.linkedin.pegasus2avro.test",
                "symbols": [
                  "JSON"
                ]
              },
              "name": "type",
              "doc": "The Test Definition Type"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "json",
              "default": null,
              "doc": "JSON format configuration for the test"
            }
          ]
        },
        "name": "definition",
        "doc": "Configuration for the Test"
      }
    ],
    "doc": "Information about a DataHub Test"
  },
  {
    "type": "record",
    "Aspect": {
      "name": "testResults"
    },
    "name": "TestResults",
    "namespace": "com.linkedin.pegasus2avro.test",
    "fields": [
      {
        "Relationship": {
          "/*/test": {
            "entityTypes": [
              "test"
            ],
            "name": "IsFailing"
          }
        },
        "Searchable": {
          "/*/test": {
            "fieldName": "failingTests",
            "fieldType": "URN",
            "hasValuesFieldName": "hasFailingTests"
          }
        },
        "type": {
          "type": "array",
          "items": {
            "type": "record",
            "name": "TestResult",
            "namespace": "com.linkedin.pegasus2avro.test",
            "fields": [
              {
                "java": {
                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                },
                "type": "string",
                "name": "test",
                "doc": "The urn of the test"
              },
              {
                "type": {
                  "type": "enum",
                  "symbolDocs": {
                    "FAILURE": " The Test Failed",
                    "SUCCESS": " The Test Succeeded"
                  },
                  "name": "TestResultType",
                  "namespace": "com.linkedin.pegasus2avro.test",
                  "symbols": [
                    "SUCCESS",
                    "FAILURE"
                  ]
                },
                "name": "type",
                "doc": "The type of the result"
              }
            ],
            "doc": "Information about a Test Result"
          }
        },
        "name": "failing",
        "doc": "Results that are failing"
      },
      {
        "Relationship": {
          "/*/test": {
            "entityTypes": [
              "test"
            ],
            "name": "IsPassing"
          }
        },
        "Searchable": {
          "/*/test": {
            "fieldName": "passingTests",
            "fieldType": "URN",
            "hasValuesFieldName": "hasPassingTests"
          }
        },
        "type": {
          "type": "array",
          "items": "com.linkedin.pegasus2avro.test.TestResult"
        },
        "name": "passing",
        "doc": "Results that are passing"
      }
    ],
    "doc": "Information about a Test Result"
  }
]