{
  "type": "record",
  "Aspect": {
    "name": "actionRequestInfo"
  },
  "name": "ActionRequestInfo",
  "namespace": "com.linkedin.pegasus2avro.actionrequest",
  "fields": [
    {
      "Searchable": {
        "fieldType": "KEYWORD"
      },
      "type": "string",
      "name": "type",
      "doc": "The type of the action request, for example 'TAG_ASSOCIATION'"
    },
    {
      "Searchable": {
        "/*": {
          "addToFilters": true,
          "fieldType": "URN"
        }
      },
      "type": {
        "type": "array",
        "items": "string"
      },
      "name": "assignedUsers",
      "doc": "The users this action request is assigned to",
      "Urn": "Urn",
      "urn_is_array": true
    },
    {
      "Searchable": {
        "/*": {
          "addToFilters": true,
          "fieldType": "URN"
        }
      },
      "type": {
        "type": "array",
        "items": "string"
      },
      "name": "assignedGroups",
      "doc": "The groups this action request is assigned to",
      "Urn": "Urn",
      "urn_is_array": true
    },
    {
      "Searchable": {
        "/*": {
          "addToFilters": true,
          "fieldType": "URN"
        }
      },
      "type": [
        "null",
        {
          "type": "array",
          "items": "string"
        }
      ],
      "name": "assignedRoles",
      "default": null,
      "doc": "The roles this action request is assigned to",
      "Urn": "Urn",
      "urn_is_array": true
    },
    {
      "type": [
        "null",
        "string"
      ],
      "name": "resourceType",
      "default": null,
      "doc": "The resource type that the action is associated with, for example 'dataset'"
    },
    {
      "Searchable": {
        "fieldType": "KEYWORD"
      },
      "type": [
        "null",
        "string"
      ],
      "name": "resource",
      "default": null,
      "doc": "The resource identifier that the action is associated with, for example 'urn:li:dataset:...'"
    },
    {
      "type": [
        "null",
        "string"
      ],
      "name": "subResourceType",
      "default": null,
      "doc": "The sub resource type that the action is associated with, for example 'datasetField'"
    },
    {
      "Searchable": {
        "fieldType": "KEYWORD"
      },
      "type": [
        "null",
        "string"
      ],
      "name": "subResource",
      "default": null,
      "doc": "The sub-resource identifier that the action is associated with, for example 'fieldName'"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "ActionRequestParams",
          "namespace": "com.linkedin.pegasus2avro.actionrequest",
          "fields": [
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "GlossaryTermProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "java": {
                        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                      },
                      "type": "string",
                      "name": "glossaryTerm",
                      "doc": "The urn of the glossary term being proposed.",
                      "Urn": "Urn"
                    }
                  ]
                }
              ],
              "name": "glossaryTermProposal",
              "default": null,
              "doc": "An optional set of information specific to term proposals."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "TagProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "java": {
                        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                      },
                      "type": "string",
                      "name": "tag",
                      "doc": "The urn of the tag being proposed.",
                      "Urn": "Urn"
                    }
                  ]
                }
              ],
              "name": "tagProposal",
              "default": null,
              "doc": "An optional set of information specific to tag proposals."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "CreateGlossaryTermProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "type": "string",
                      "name": "name",
                      "doc": "Name of the proposed Glossary Term"
                    },
                    {
                      "java": {
                        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                      },
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "parentNode",
                      "default": null,
                      "doc": "The urn of the parent node of the Proposed Term",
                      "Urn": "Urn"
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "description",
                      "default": null,
                      "doc": "The description of the Proposed Term"
                    }
                  ]
                }
              ],
              "name": "createGlossaryTermProposal",
              "default": null,
              "doc": "An optional set of information specific to proposals for creating new Glossary Terms."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "CreateGlossaryNodeProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "type": "string",
                      "name": "name",
                      "doc": "Name of the proposed Glossary Node"
                    },
                    {
                      "java": {
                        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                      },
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "parentNode",
                      "default": null,
                      "doc": "The urn of the parent node of the Proposed Node",
                      "Urn": "Urn"
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "description",
                      "default": null,
                      "doc": "The description of the Proposed Node"
                    }
                  ]
                }
              ],
              "name": "createGlossaryNodeProposal",
              "default": null,
              "doc": "An optional set of information specific to proposals for creating new Glossary Nodes."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "DescriptionProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "type": "string",
                      "name": "description",
                      "doc": "The text of the description."
                    }
                  ]
                }
              ],
              "name": "updateDescriptionProposal",
              "default": null,
              "doc": "An optional set of information specific to proposals for updating Descriptions."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "DataContractProposal",
                  "namespace": "com.linkedin.pegasus2avro.actionrequest",
                  "fields": [
                    {
                      "type": [
                        {
                          "type": "enum",
                          "symbolDocs": {
                            "ADD": "Add contracts to existing contract",
                            "OVERWRITE": "Overwrite the contract in its entirety"
                          },
                          "name": "DataContractProposalOperationType",
                          "namespace": "com.linkedin.pegasus2avro.actionrequest",
                          "symbols": [
                            "ADD",
                            "OVERWRITE"
                          ]
                        },
                        "null"
                      ],
                      "name": "type",
                      "default": "OVERWRITE",
                      "doc": "How to apply the Data Contract"
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": {
                            "type": "record",
                            "name": "SchemaContract",
                            "namespace": "com.linkedin.pegasus2avro.datacontract",
                            "fields": [
                              {
                                "Relationship": {
                                  "entityTypes": [
                                    "assertion"
                                  ],
                                  "name": "IncludesSchemaAssertion"
                                },
                                "java": {
                                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                                },
                                "type": "string",
                                "name": "assertion",
                                "doc": "The assertion representing the schema contract.",
                                "Urn": "Urn",
                                "entityTypes": [
                                  "assertion"
                                ]
                              }
                            ],
                            "doc": "Expectations for a logical schema"
                          }
                        }
                      ],
                      "name": "schema",
                      "default": null,
                      "doc": "An optional set of schema contracts. If this is a dataset contract, there will only be one."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": {
                            "type": "record",
                            "name": "FreshnessContract",
                            "namespace": "com.linkedin.pegasus2avro.datacontract",
                            "fields": [
                              {
                                "java": {
                                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                                },
                                "type": "string",
                                "name": "assertion",
                                "doc": "The assertion representing the SLA contract.",
                                "Urn": "Urn"
                              }
                            ],
                            "doc": "A contract pertaining to the operational SLAs of a physical data asset"
                          }
                        }
                      ],
                      "name": "freshness",
                      "default": null,
                      "doc": "An optional set of Freshness contracts. If this is a dataset contract, there will only be one."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": {
                            "type": "record",
                            "name": "DataQualityContract",
                            "namespace": "com.linkedin.pegasus2avro.datacontract",
                            "fields": [
                              {
                                "Relationship": {
                                  "entityTypes": [
                                    "assertion"
                                  ],
                                  "name": "IncludesDataQualityAssertion"
                                },
                                "java": {
                                  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                                },
                                "type": "string",
                                "name": "assertion",
                                "doc": "The assertion representing the Data Quality contract.\nE.g. a table or column-level assertion.",
                                "Urn": "Urn",
                                "entityTypes": [
                                  "assertion"
                                ]
                              }
                            ],
                            "doc": "A data quality contract pertaining to a physical data asset\nData Quality contracts are used to make assertions about data quality metrics for a physical data asset"
                          }
                        }
                      ],
                      "name": "dataQuality",
                      "default": null,
                      "doc": "An optional set of Data Quality contracts, e.g. table and column level contract constraints."
                    }
                  ]
                }
              ],
              "name": "dataContractProposal",
              "default": null,
              "doc": "A proposal to create or modify a Data Contract"
            }
          ],
          "doc": "Parameters provided with a particular action request. Only one of the fields will be populated,\ndepending on the action request type."
        }
      ],
      "name": "params",
      "default": null,
      "doc": "Parameters specific for a particular Action Request type"
    },
    {
      "Searchable": {
        "fieldType": "COUNT"
      },
      "type": "long",
      "name": "created",
      "doc": "The time at which the request was initially created"
    },
    {
      "Searchable": {
        "fieldType": "URN"
      },
      "java": {
        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
      },
      "type": "string",
      "name": "createdBy",
      "doc": "Who the action request was created by",
      "Urn": "Urn"
    },
    {
      "type": [
        "null",
        "long"
      ],
      "name": "dueDate",
      "default": null,
      "doc": "The time at which the request is due"
    }
  ],
  "doc": "The status of the action request - e.g. accepted, rejected, pending, etc"
}