{
  "type": "record",
  "Aspect": {
    "name": "globalSettingsInfo",
    "schemaVersion": 5
  },
  "name": "GlobalSettingsInfo",
  "namespace": "com.linkedin.pegasus2avro.settings.global",
  "fields": [
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "GlobalIntegrationSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "SlackIntegrationSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "deprecated": true,
                      "type": "boolean",
                      "name": "enabled",
                      "default": true,
                      "doc": "Whether the slack integration is enabled or not.\nDeprecated! This is no longer used in favor of using the connections abstraction.\nIf a connection is present, then this is enabled."
                    },
                    {
                      "deprecated": true,
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "encryptedBotToken",
                      "default": null,
                      "doc": "An encrypted bot token.\nDeprecated! This is no longer used in favor of using the connections abstraction."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "defaultChannelName",
                      "default": null,
                      "doc": "A default slack channel to use."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "datahubAtMentionEnabled",
                      "default": null,
                      "doc": "Whether the Slack @DataHub bot mention functionality is enabled.\nIf null, use the default value from feature flags."
                    },
                    {
                      "type": {
                        "type": "array",
                        "items": {
                          "type": "record",
                          "name": "SlackBotServiceAccountMapping",
                          "namespace": "com.linkedin.pegasus2avro.settings.global",
                          "fields": [
                            {
                              "type": "string",
                              "name": "botId",
                              "doc": "The Slack bot_id (e.g. \"B01ABC23DEF\") of the authoring bot."
                            },
                            {
                              "java": {
                                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                              },
                              "type": "string",
                              "name": "serviceAccountUrn",
                              "doc": "URN of the DataHub corp user to impersonate for requests originating\nfrom this bot_id. Must point to a corpUser, typically a service account.",
                              "Urn": "Urn"
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "description",
                              "default": null,
                              "doc": "Optional human-friendly label describing the bot, shown in the settings UI."
                            }
                          ],
                          "doc": "Mapping from a Slack bot_id to a DataHub service account user URN.\n\nWhen the integrations service receives a Slack app_mention authored by a bot\nwhose bot_id matches an entry here, the bot is allowed to use Ask DataHub\nand the question is attributed to the mapped service account rather than\nrequiring a human user in the thread."
                        }
                      },
                      "name": "botServiceAccountMappings",
                      "default": [],
                      "doc": "Mappings from Slack bot_id to DataHub service account URN. When a Slack\napp_mention is authored by a bot whose bot_id matches an entry here, the\nintegrations service permits the mention (skipping the usual human-author\nrequirement) and attributes the question to the mapped service account."
                    }
                  ],
                  "doc": "Slack integration settings."
                }
              ],
              "name": "slackSettings",
              "default": null,
              "doc": "Slack integration settings."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "EmailIntegrationSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "defaultEmail",
                      "default": null,
                      "doc": "The default email address to use for global notifications."
                    }
                  ],
                  "doc": "Email integration settings. Enabled by default and only disable-able via the application configs."
                }
              ],
              "name": "emailSettings",
              "default": null,
              "doc": "Email integration settings."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "TeamsIntegrationSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "deprecated": true,
                      "type": "boolean",
                      "name": "enabled",
                      "default": true,
                      "doc": "Whether the Teams integration is enabled or not.\nDeprecated! This is no longer used in favor of using the connections abstraction.\nIf a connection is present, then this is enabled."
                    },
                    {
                      "deprecated": true,
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "encryptedBotToken",
                      "default": null,
                      "doc": "An encrypted bot token.\nDeprecated! This is no longer used in favor of using the connections abstraction."
                    },
                    {
                      "deprecated": true,
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "defaultChannelName",
                      "default": null,
                      "doc": "A default Teams channel to use.\nDeprecated! Use defaultChannel instead."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "record",
                          "name": "TeamsChannel",
                          "namespace": "com.linkedin.pegasus2avro.settings.global",
                          "fields": [
                            {
                              "type": "string",
                              "name": "id",
                              "doc": "The Teams channel ID (internal Teams identifier)."
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "name",
                              "default": null,
                              "doc": "The Teams channel display name (cached value, may be stale)."
                            },
                            {
                              "type": [
                                "null",
                                "long"
                              ],
                              "name": "lastUpdated",
                              "default": null,
                              "doc": "The timestamp when the cached name was last updated.\nUsed for TTL-based cache invalidation."
                            }
                          ],
                          "doc": "Teams channel information with cached display name."
                        }
                      ],
                      "name": "defaultChannel",
                      "default": null,
                      "doc": "A default Teams channel to route notifications to."
                    }
                  ],
                  "doc": "Teams integration settings."
                }
              ],
              "name": "teamsSettings",
              "default": null,
              "doc": "Teams integration settings."
            }
          ],
          "doc": "Native DataHub Integrations, supported on the UI."
        }
      ],
      "name": "integrations",
      "default": null,
      "doc": "Integrations between DataHub & other platforms."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "GlobalNotificationSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": [
                "null",
                {
                  "type": "map",
                  "values": {
                    "type": "record",
                    "name": "NotificationSetting",
                    "namespace": "com.linkedin.pegasus2avro.settings",
                    "fields": [
                      {
                        "type": {
                          "type": "enum",
                          "symbolDocs": {
                            "DISABLED": "Setting is disabled.",
                            "ENABLED": "Setting is enabled."
                          },
                          "name": "NotificationSettingValue",
                          "namespace": "com.linkedin.pegasus2avro.settings",
                          "symbols": [
                            "ENABLED",
                            "DISABLED"
                          ]
                        },
                        "name": "value",
                        "doc": "Integrations between DataHub & other platforms."
                      },
                      {
                        "type": [
                          "null",
                          {
                            "type": "map",
                            "values": "string"
                          }
                        ],
                        "name": "params",
                        "default": null,
                        "doc": "Custom set of setting parameters.\nCurrently used to store sink enabled / disabled settings.\nE.g. slack.enabled = true, email.enabled = false"
                      }
                    ]
                  }
                }
              ],
              "name": "settings",
              "default": null,
              "doc": "Global / platform notification settings.\nA map of notification scenario type to the settings associated with it.\nFor a list of all scenario types to notify on, check out NotificationScenarioType enum."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "GlobalIncidentsSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "com.linkedin.pegasus2avro.settings.NotificationSetting",
                      "name": "broadcastNewIncidentNotification",
                      "doc": "Send a 'broadcast' notification when a new incident has been created. A broadcast is a notification that\nis sent to a general purpose channel, as opposed to a specific user or group member directly."
                    },
                    {
                      "type": "com.linkedin.pegasus2avro.settings.NotificationSetting",
                      "name": "broadcastIncidentStatusChangeNotification",
                      "doc": "Send a 'broadcast' notification when an incident status has changed. A broadcast is a notification that\nis sent to a general purpose channel, as opposed to a specific user or group member directly."
                    }
                  ]
                }
              ],
              "name": "incidents",
              "default": null,
              "doc": "Settings related to asset incidents.\nDeprecated! Use 'settings' for configuring incidents settings instead."
            }
          ],
          "doc": "DataHub global notification settings"
        }
      ],
      "name": "notifications",
      "default": null,
      "doc": "Global notifications settings"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "SsoSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "string",
              "name": "baseUrl",
              "doc": "Auth base URL."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "OidcSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "boolean",
                      "name": "enabled",
                      "doc": "Whether OIDC SSO is enabled."
                    },
                    {
                      "type": "string",
                      "name": "clientId",
                      "doc": "Unique client id issued by the identity provider."
                    },
                    {
                      "type": "string",
                      "name": "clientSecret",
                      "doc": "Unique client secret issued by the identity provider."
                    },
                    {
                      "type": "string",
                      "name": "discoveryUri",
                      "doc": "The IdP OIDC discovery url."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "userNameClaim",
                      "default": null,
                      "doc": "ADVANCED. The attribute / claim used to derive the DataHub username. Defaults to \"preferred_username\"."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "userNameClaimRegex",
                      "default": null,
                      "doc": "ADVANCED. TThe regex used to parse the DataHub username from the user name claim. Defaults to (.*) (all)."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "scope",
                      "default": null,
                      "doc": "ADVANCED. String representing the requested scope from the IdP. Defaults to \"oidc email profile\"."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "clientAuthenticationMethod",
                      "default": null,
                      "doc": "ADVANCED. Which authentication method to use to pass credentials (clientId and clientSecret) to the token endpoint: Defaults to \"client_secret_basic\"."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "jitProvisioningEnabled",
                      "default": null,
                      "doc": "ADVANCED. Whether DataHub users should be provisioned on login if they do not exist. Defaults to true."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "preProvisioningRequired",
                      "default": null,
                      "doc": "ADVANCED. Whether the user should already exist in DataHub on login, failing login if they are not. Defaults to false."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "extractGroupsEnabled",
                      "default": null,
                      "doc": "ADVANCED. Whether groups should be extracted from a claim in the OIDC profile. Only applies if JIT provisioning is enabled. Groups will be created if they do not exist. Defaults to true."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "groupsClaim",
                      "default": null,
                      "doc": "ADVANCED. The OIDC claim to extract groups information from. Defaults to 'groups'."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "responseType",
                      "default": null,
                      "doc": "ADVANCED. Response type."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "responseMode",
                      "default": null,
                      "doc": "ADVANCED. Response mode."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "useNonce",
                      "default": null,
                      "doc": "ADVANCED. Use Nonce."
                    },
                    {
                      "type": [
                        "null",
                        "long"
                      ],
                      "name": "readTimeout",
                      "default": null,
                      "doc": "ADVANCED. Read timeout."
                    },
                    {
                      "type": [
                        "null",
                        "boolean"
                      ],
                      "name": "extractJwtAccessTokenClaims",
                      "default": null,
                      "doc": "ADVANCED. Whether to extract claims from JWT access token.  Defaults to false."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "preferredJwsAlgorithm",
                      "default": null,
                      "doc": " ADVANCED. Which jws algorithm to use. Unused."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "preferredJwsAlgorithm2",
                      "default": null,
                      "doc": " ADVANCED. Which jws algorithm to use."
                    }
                  ],
                  "doc": "Settings for OIDC SSO integration."
                }
              ],
              "name": "oidcSettings",
              "default": null,
              "doc": "Optional OIDC SSO settings."
            }
          ],
          "doc": "SSO Integrations, supported on the UI."
        }
      ],
      "name": "sso",
      "default": null,
      "doc": "SSO integrations between DataHub and identity providers"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "OAuthSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": {
                "type": "array",
                "items": {
                  "type": "record",
                  "name": "OAuthProvider",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "boolean",
                      "name": "enabled",
                      "doc": "Whether this OAuth provider is enabled."
                    },
                    {
                      "type": "string",
                      "name": "name",
                      "doc": "The name of this OAuth provider. This is used for display purposes only."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "jwksUri",
                      "default": null,
                      "doc": "The URI of the JSON Web Key Set (JWKS) endpoint for this OAuth provider."
                    },
                    {
                      "type": "string",
                      "name": "issuer",
                      "doc": "The expected issuer (iss) claim in the JWTs issued by this OAuth provider."
                    },
                    {
                      "type": "string",
                      "name": "audience",
                      "doc": "The expected audience (aud) claim in the JWTs issued by this OAuth provider."
                    },
                    {
                      "type": "string",
                      "name": "algorithm",
                      "default": "RS256",
                      "doc": "The JWT signing algorithm required for this provider.\nPrevents algorithm confusion attacks. Common values: RS256, RS384, RS512, PS256, ES256"
                    },
                    {
                      "type": "string",
                      "name": "userIdClaim",
                      "default": "sub",
                      "doc": "The JWT claim to use as the user identifier for this provider.\nDifferent providers use different claims (sub, email, preferred_username, etc.)"
                    }
                  ],
                  "doc": "An OAuth Provider. This provides information required to validate inbound\nrequests with OAuth 2.0 bearer tokens."
                }
              },
              "name": "providers",
              "doc": "Trusted OAuth Providers"
            }
          ],
          "doc": "Trust oauth providers to use for authentication."
        }
      ],
      "name": "oauth",
      "default": null,
      "doc": "Settings related to the oauth authentication provider"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "GlobalViewsSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "Relationship": {
                "entityTypes": [
                  "dataHubView"
                ],
                "name": "viewedWith"
              },
              "java": {
                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
              },
              "type": [
                "null",
                "string"
              ],
              "name": "defaultView",
              "default": null,
              "doc": "The default View for the instance, or organization.",
              "Urn": "Urn",
              "entityTypes": [
                "dataHubView"
              ]
            }
          ],
          "doc": "Settings for DataHub Views feature."
        }
      ],
      "name": "views",
      "default": null,
      "doc": "Settings related to the Views Feature"
    },
    {
      "type": [
        {
          "type": "record",
          "name": "DocPropagationFeatureSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "boolean",
              "name": "enabled"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "config",
              "default": null,
              "doc": "The configuration for the feature, in JSON format."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "configVersion",
              "default": null,
              "doc": "The version of the configuration schema that has been used to serialize\n       the config.\nIf not provided, the version is assumed to be the latest version."
            },
            {
              "type": "boolean",
              "name": "columnPropagationEnabled",
              "default": true
            }
          ]
        },
        "null"
      ],
      "name": "docPropagation",
      "default": {
        "configVersion": null,
        "config": null,
        "enabled": true,
        "columnPropagationEnabled": true
      },
      "doc": "Settings related to the documentation propagation feature"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "GlobalHomePageSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "java": {
                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
              },
              "type": "string",
              "name": "defaultTemplate",
              "doc": "The urn that will be rendered in the UI by default for all users",
              "Urn": "Urn"
            }
          ],
          "doc": "Global settings related to the home page for an instance"
        }
      ],
      "name": "homePage",
      "default": null,
      "doc": "Global settings related to the home page for an instance"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "ApplicationsSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "boolean",
              "name": "enabled"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "config",
              "default": null,
              "doc": "The configuration for the feature, in JSON format."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "configVersion",
              "default": null,
              "doc": "The version of the configuration schema that has been used to serialize\n       the config.\nIf not provided, the version is assumed to be the latest version."
            }
          ]
        }
      ],
      "name": "applications",
      "default": null,
      "doc": "Settings related to applications. If not enabled, applications won't show up in navigation"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "DocumentationAiSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "boolean",
              "name": "enabled",
              "default": true,
              "doc": "Whether or not AI-generated documentation is enabled."
            },
            {
              "type": {
                "type": "array",
                "items": {
                  "type": "record",
                  "name": "AiInstruction",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "string",
                      "name": "id",
                      "doc": "A unique identifier for this instruction.\nThis will enable users to manage multiple versions of the same instruction in the future."
                    },
                    {
                      "type": {
                        "type": "enum",
                        "symbolDocs": {
                          "GENERAL_CONTEXT": "General context to customize the AI assistant's behavior globally or personally. This is the only supported type currently."
                        },
                        "name": "AiInstructionType",
                        "namespace": "com.linkedin.pegasus2avro.settings.global",
                        "symbols": [
                          "GENERAL_CONTEXT"
                        ]
                      },
                      "name": "type",
                      "doc": "A unique identifier for this instruction.\nThis will enable users to manage multiple versions of the same instruction in the future."
                    },
                    {
                      "type": {
                        "type": "enum",
                        "symbolDocs": {
                          "ACTIVE": "The instruction is active and will be used by the AI assistant.",
                          "INACTIVE": "The instruction is inactive and will not be used by the AI assistant."
                        },
                        "name": "AiInstructionState",
                        "namespace": "com.linkedin.pegasus2avro.settings.global",
                        "symbols": [
                          "ACTIVE",
                          "INACTIVE"
                        ]
                      },
                      "name": "state",
                      "doc": "The state of the instruction"
                    },
                    {
                      "type": "string",
                      "name": "instruction",
                      "doc": "Custom instruction text to be sent to the AI model."
                    },
                    {
                      "type": {
                        "type": "record",
                        "name": "AuditStamp",
                        "namespace": "com.linkedin.pegasus2avro.common",
                        "fields": [
                          {
                            "type": "long",
                            "name": "time",
                            "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
                          },
                          {
                            "java": {
                              "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                            },
                            "type": "string",
                            "name": "actor",
                            "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
                            "Urn": "Urn"
                          },
                          {
                            "java": {
                              "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                            },
                            "type": [
                              "null",
                              "string"
                            ],
                            "name": "impersonator",
                            "default": null,
                            "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
                            "Urn": "Urn"
                          },
                          {
                            "type": [
                              "null",
                              "string"
                            ],
                            "name": "message",
                            "default": null,
                            "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
                          }
                        ],
                        "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
                      },
                      "name": "created",
                      "doc": "The actor + timestamp of when this instruction was created."
                    },
                    {
                      "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                      "name": "lastModified",
                      "doc": "The actor + timestamp of when this instruction was last modified."
                    }
                  ],
                  "doc": "An object representing custom AI instructions for the AI assistant.\nGenerally, these are injected into the prompt sent to the AI model.\n\nIn the future we extend this to include positive examples, negative examples,\nand other parameters to customize the AI model's behavior."
                }
              },
              "name": "instructions",
              "default": [],
              "doc": "Custom instructions to inject into the AI documentation model prompt."
            }
          ],
          "doc": "Settings related to AI-powered documentation."
        }
      ],
      "name": "documentationAi",
      "default": null,
      "doc": "Settings related to AI-powered documentation."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "AiAssistantSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": {
                "type": "array",
                "items": "com.linkedin.pegasus2avro.settings.global.AiInstruction"
              },
              "name": "instructions",
              "default": [],
              "doc": "Custom instructions to inject into the AI assistant prompt"
            }
          ],
          "doc": "Settings related to the AI assistant (Ask DataHub) feature"
        }
      ],
      "name": "aiAssistant",
      "default": null,
      "doc": "Settings related to AI-powered chat assistant (Ask DataHub)."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "GlobalVisualSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "HelpLink",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "boolean",
                      "name": "isEnabled",
                      "doc": "Whether or not this link should be shown in the UI"
                    },
                    {
                      "type": "string",
                      "name": "label",
                      "doc": "The label of this help link"
                    },
                    {
                      "type": "string",
                      "name": "link",
                      "doc": "The url or mailto link that this links to"
                    }
                  ],
                  "doc": "Information regarding the help link dislayed in the UI"
                }
              ],
              "name": "helpLink",
              "default": null,
              "doc": "The configurable help link shown in the UI"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "customLogoUrl",
              "default": null,
              "doc": "The Url for a custom logo to display in the UI"
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "customOrgName",
              "default": null,
              "doc": "A customized name for organization display preferences"
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "SampleDataSettings",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": {
                        "type": "enum",
                        "symbolDocs": {
                          "DISABLED": "Sample data is disabled and hidden from the platform.",
                          "ENABLED": "Sample data is enabled and visible throughout the platform."
                        },
                        "name": "SampleDataStatus",
                        "namespace": "com.linkedin.pegasus2avro.settings.global",
                        "symbols": [
                          "ENABLED",
                          "DISABLED"
                        ]
                      },
                      "name": "sampleDataStatus",
                      "doc": "Status of sample data visibility in the platform.\nControls which types of sample data entities are visible.\nOnly applicable for free trial instances."
                    }
                  ],
                  "doc": "Settings related to sample data, used to aid in initial onboarding."
                }
              ],
              "name": "sampleDataSettings",
              "default": null,
              "doc": "Settings related to sample data, used to aid in initial onboarding."
            }
          ],
          "doc": "Global settings for the UI"
        }
      ],
      "name": "visual",
      "default": null,
      "doc": "Global settings related to the UI and what's displayed in the app"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "AiPluginSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": {
                "type": "array",
                "items": {
                  "type": "record",
                  "name": "AiPluginConfig",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": "string",
                      "name": "id",
                      "doc": "Unique identifier for this plugin configuration.\nTypically the service URN string for easy correlation.\nExample: urn:li:service:glean-search"
                    },
                    {
                      "type": {
                        "type": "enum",
                        "symbolDocs": {
                          "MCP_SERVER": "Model Context Protocol (MCP) server.\nService entity should have McpServerProperties aspect."
                        },
                        "name": "AiPluginType",
                        "namespace": "com.linkedin.pegasus2avro.settings.global",
                        "symbols": [
                          "MCP_SERVER"
                        ]
                      },
                      "name": "type",
                      "doc": "Type of AI plugin (determines how the agent uses it)."
                    },
                    {
                      "java": {
                        "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                      },
                      "type": "string",
                      "name": "serviceUrn",
                      "doc": "Reference to the Service entity (catalog entry).\nExample: urn:li:service:glean-search",
                      "Urn": "Urn"
                    },
                    {
                      "type": "boolean",
                      "name": "enabled",
                      "default": true,
                      "doc": "Whether this plugin is enabled for Ask DataHub.\nDisabled plugins are not available to the agent."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "instructions",
                      "default": null,
                      "doc": "Custom instructions for the LLM when using this plugin's tools.\nInjected into the agent's system prompt.\nExample: Use Glean for searching company documentation and wikis."
                    },
                    {
                      "type": {
                        "type": "enum",
                        "symbolDocs": {
                          "NONE": "No authentication required (public API).",
                          "SHARED_API_KEY": "System-wide API key shared across all users.\nConfiguration in sharedApiKeyConfig.",
                          "USER_API_KEY": "User provides their own API key.\nConfiguration in userApiKeyConfig.",
                          "USER_OAUTH": "User authenticates via OAuth2 flow.\nConfiguration in oauthConfig."
                        },
                        "name": "AiPluginAuthType",
                        "namespace": "com.linkedin.pegasus2avro.settings.global",
                        "symbols": [
                          "NONE",
                          "SHARED_API_KEY",
                          "USER_API_KEY",
                          "USER_OAUTH"
                        ]
                      },
                      "name": "authType",
                      "doc": "How this plugin authenticates requests."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "record",
                          "name": "OAuthAiPluginConfig",
                          "namespace": "com.linkedin.pegasus2avro.settings.global",
                          "fields": [
                            {
                              "java": {
                                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                              },
                              "type": "string",
                              "name": "serverUrn",
                              "doc": "URN of the OAuthAuthorizationServer that provides OAuth configuration.\nContains clientId, authorization URL, token URL, scopes, and auth injection settings.",
                              "Urn": "Urn"
                            },
                            {
                              "type": [
                                "null",
                                {
                                  "type": "array",
                                  "items": "string"
                                }
                              ],
                              "name": "requiredScopes",
                              "default": null,
                              "doc": "Additional scopes required by this plugin.\nMerged with the authorization server's base scopes when user connects."
                            }
                          ]
                        }
                      ],
                      "name": "oauthConfig",
                      "default": null,
                      "doc": "OAuth configuration.\nRequired when authType is USER_OAUTH."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "record",
                          "name": "SharedApiKeyAiPluginConfig",
                          "namespace": "com.linkedin.pegasus2avro.settings.global",
                          "fields": [
                            {
                              "java": {
                                "class": "com.linkedin.pegasus2avro.common.urn.Urn"
                              },
                              "type": "string",
                              "name": "credentialUrn",
                              "doc": "URN of DataHubConnection containing the shared API key.\nThe DataHubConnection is owned by the Service entity.\nExample: urn:li:dataHubConnection:urn_li_service_internal-tools__apiKey\nNote: Uses double-underscore separator (not tuple format) since DataHubConnectionKey has a single id field.",
                              "Urn": "Urn"
                            },
                            {
                              "type": {
                                "type": "enum",
                                "name": "AuthInjectionLocation",
                                "namespace": "com.linkedin.pegasus2avro.settings.global",
                                "symbols": [
                                  "HEADER",
                                  "QUERY_PARAM"
                                ]
                              },
                              "name": "authLocation",
                              "default": "HEADER",
                              "doc": "Where to inject the API key in HTTP requests."
                            },
                            {
                              "type": "string",
                              "name": "authHeaderName",
                              "default": "Authorization",
                              "doc": "For HEADER: which header name to use."
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "authScheme",
                              "default": null,
                              "doc": "For HEADER: optional scheme prefix (e.g., \"Bearer\", \"ApiKey\")."
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "authQueryParam",
                              "default": null,
                              "doc": "For QUERY_PARAM: which query parameter name to use."
                            }
                          ]
                        }
                      ],
                      "name": "sharedApiKeyConfig",
                      "default": null,
                      "doc": "Shared API key configuration.\nRequired when authType is SHARED_API_KEY.\n\nAuth injection settings are embedded directly because shared API keys\ndon't need OAuth configuration."
                    },
                    {
                      "type": [
                        "null",
                        {
                          "type": "record",
                          "name": "UserApiKeyAiPluginConfig",
                          "namespace": "com.linkedin.pegasus2avro.settings.global",
                          "fields": [
                            {
                              "type": "com.linkedin.pegasus2avro.settings.global.AuthInjectionLocation",
                              "name": "authLocation",
                              "default": "HEADER",
                              "doc": "Where to inject the API key in HTTP requests."
                            },
                            {
                              "type": "string",
                              "name": "authHeaderName",
                              "default": "Authorization",
                              "doc": "For HEADER: which header name to use."
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "authScheme",
                              "default": null,
                              "doc": "For HEADER: optional scheme prefix (e.g., \"Bearer\", \"ApiKey\")."
                            },
                            {
                              "type": [
                                "null",
                                "string"
                              ],
                              "name": "authQueryParam",
                              "default": null,
                              "doc": "For QUERY_PARAM: which query parameter name to use."
                            }
                          ]
                        }
                      ],
                      "name": "userApiKeyConfig",
                      "default": null,
                      "doc": "User API key configuration.\nRequired when authType is USER_API_KEY.\n\nUser credentials are stored in DataHubConnection keyed by (userUrn, serviceId).\nThis config defines how to inject the user's API key into requests."
                    }
                  ],
                  "doc": "Ask DataHub configuration for an AI plugin.\n\nThis record configures how a Service entity is used by the Ask DataHub agent.\nThe Service entity contains catalog info (URL, transport), while this record\ncontains agent-specific settings (auth, instructions, enabled).\n\nStored in AiPluginSettings.plugins array."
                }
              },
              "name": "plugins",
              "default": [],
              "doc": "List of configured AI plugins.\nEach plugin references a Service entity and provides agent-specific settings."
            }
          ],
          "doc": "Settings for AI plugins (MCP servers, etc.) in Ask DataHub.\nThis is a wrapper object following the GlobalSettings pattern."
        }
      ],
      "name": "aiPluginSettings",
      "default": null,
      "doc": "AI plugin settings for Ask DataHub (MCP servers, etc.)."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "McpServerSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": {
                "type": "array",
                "items": {
                  "type": "record",
                  "name": "McpServerConfig",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "fields": [
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "slug",
                      "default": null,
                      "doc": "URL-safe unique identifier used as the path segment in /mcp/:slug.\nAbsent only for defaultMcpServerOverrides on the default server."
                    },
                    {
                      "type": "string",
                      "name": "name",
                      "doc": "Human-readable display name for this server."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "description",
                      "default": null,
                      "doc": "Short description of the MCP server."
                    },
                    {
                      "type": "boolean",
                      "name": "enabled",
                      "default": true,
                      "doc": "Whether this server is active and should be mounted by the dispatcher.\nDefaults to true."
                    },
                    {
                      "type": [
                        "null",
                        "string"
                      ],
                      "name": "customInstructions",
                      "default": null,
                      "doc": "Optional custom system prompt / instructions for this server's scope."
                    },
                    {
                      "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                      "name": "created",
                      "doc": "Audit stamp for when this server was created."
                    },
                    {
                      "type": "com.linkedin.pegasus2avro.common.AuditStamp",
                      "name": "lastModified",
                      "doc": "Audit stamp for when this server was last modified."
                    }
                  ],
                  "doc": "Configuration for a DataHub-hosted MCP server.\nEach scoped server is exposed at /mcp/:slug; the default server at /mcp uses this\ntype for overrides (slug absent)."
                }
              },
              "name": "servers",
              "default": [],
              "doc": "List of configured scoped MCP servers."
            },
            {
              "type": [
                "null",
                "com.linkedin.pegasus2avro.settings.global.McpServerConfig"
              ],
              "name": "defaultMcpServerOverrides",
              "default": null,
              "doc": "Optional overrides applied to the default MCP server (exposed at /mcp with no slug).\nWhen absent, the default server exposes all tools with no custom instructions."
            }
          ],
          "doc": "Settings for DataHub-hosted MCP servers (one per slug, exposed at /mcp/:slug).\nThis is a wrapper object following the GlobalSettings pattern."
        }
      ],
      "name": "mcpServers",
      "default": null,
      "doc": "Settings for DataHub-hosted MCP servers (one per slug, exposed at /mcp/:slug)."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "MaintenanceWindowSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "boolean",
              "name": "enabled",
              "default": false,
              "doc": "Whether maintenance mode is currently active."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "message",
              "default": null,
              "doc": "Message to display to users during maintenance."
            },
            {
              "type": [
                "null",
                {
                  "type": "enum",
                  "symbolDocs": {
                    "CRITICAL": "Critical maintenance (e.g., major outage or emergency maintenance).",
                    "INFO": "Informational maintenance notice (e.g., scheduled maintenance window).",
                    "WARNING": "Warning level maintenance (e.g., degraded performance expected)."
                  },
                  "name": "MaintenanceSeverity",
                  "namespace": "com.linkedin.pegasus2avro.settings.global",
                  "symbols": [
                    "INFO",
                    "WARNING",
                    "CRITICAL"
                  ],
                  "doc": "Severity level for maintenance window announcements."
                }
              ],
              "name": "severity",
              "default": null,
              "doc": "Severity level affecting banner color."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "linkUrl",
              "default": null,
              "doc": "Optional URL for more details (e.g., status page)."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "linkText",
              "default": null,
              "doc": "Optional text for the link (defaults to \"Learn more\" if linkUrl provided)."
            },
            {
              "type": [
                "null",
                "long"
              ],
              "name": "enabledAt",
              "default": null,
              "doc": "Timestamp when maintenance mode was enabled (epoch millis)."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "enabledBy",
              "default": null,
              "doc": "URN of user who enabled maintenance mode."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "DataHubActorFilter",
                  "namespace": "com.linkedin.pegasus2avro.policy",
                  "fields": [
                    {
                      "Searchable": {
                        "/*": {
                          "fieldType": "URN"
                        }
                      },
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": "string"
                        }
                      ],
                      "name": "users",
                      "default": null,
                      "doc": "A specific set of users to apply the policy to (disjunctive)",
                      "Urn": "Urn",
                      "urn_is_array": true
                    },
                    {
                      "Searchable": {
                        "/*": {
                          "fieldType": "URN"
                        }
                      },
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": "string"
                        }
                      ],
                      "name": "groups",
                      "default": null,
                      "doc": "A specific set of groups to apply the policy to (disjunctive)",
                      "Urn": "Urn",
                      "urn_is_array": true
                    },
                    {
                      "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": [
                        "null",
                        {
                          "type": "array",
                          "items": "string"
                        }
                      ],
                      "name": "resourceOwnersTypes",
                      "default": null,
                      "doc": "Define type of ownership for the policy",
                      "Urn": "Urn",
                      "urn_is_array": true
                    },
                    {
                      "Searchable": {
                        "fieldType": "BOOLEAN"
                      },
                      "type": "boolean",
                      "name": "allUsers",
                      "default": false,
                      "doc": "Whether the filter should apply to all users."
                    },
                    {
                      "Searchable": {
                        "fieldType": "BOOLEAN"
                      },
                      "type": "boolean",
                      "name": "allGroups",
                      "default": false,
                      "doc": "Whether the filter should apply to all groups."
                    },
                    {
                      "Relationship": {
                        "/*": {
                          "entityTypes": [
                            "dataHubRole"
                          ],
                          "name": "IsAssociatedWithRole"
                        }
                      },
                      "Searchable": {
                        "/*": {
                          "fieldType": "URN"
                        }
                      },
                      "type": [
                        "null",
                        {
                          "type": "array",
                          "items": "string"
                        }
                      ],
                      "name": "roles",
                      "default": null,
                      "doc": "A specific set of roles to apply the policy to (disjunctive).",
                      "Urn": "Urn",
                      "urn_is_array": true
                    }
                  ],
                  "doc": "Information used to filter DataHub actors."
                }
              ],
              "name": "audience",
              "default": null,
              "doc": "Audience filter controlling which users see the banner.\nNull/absent = visible to all authenticated users. Evaluated client-side."
            }
          ],
          "doc": "Settings for platform-wide maintenance window announcements.\nWhen enabled, a banner is displayed to all authenticated users."
        }
      ],
      "name": "maintenanceWindow",
      "default": null,
      "doc": "Settings for platform-wide maintenance window announcements"
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "AiContextSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": {
                "type": "record",
                "name": "ContextEvaluationSettings",
                "namespace": "com.linkedin.pegasus2avro.settings.global",
                "fields": [
                  {
                    "type": "boolean",
                    "name": "enabled",
                    "default": false,
                    "doc": "Whether the evaluation suite is enabled for this space."
                  },
                  {
                    "type": {
                      "type": "record",
                      "name": "ContextTaskSchedule",
                      "namespace": "com.linkedin.pegasus2avro.settings.global",
                      "fields": [
                        {
                          "type": {
                            "type": "enum",
                            "name": "ContextTaskFrequency",
                            "namespace": "com.linkedin.pegasus2avro.settings.global",
                            "symbols": [
                              "DAILY"
                            ],
                            "doc": "How frequently an AI context task (generation or evaluation) runs."
                          },
                          "name": "frequency",
                          "default": "DAILY"
                        }
                      ],
                      "doc": "Schedule configuration for an AI context task (generation or evaluation).\nModeled as a record so additional fields (e.g. timezone, custom cron) can be added\nin the future without changing the type of the referencing field."
                    },
                    "name": "schedule",
                    "default": {
                      "frequency": "DAILY"
                    },
                    "doc": "How often the evaluation suite runs."
                  }
                ],
                "doc": "Settings controlling the context evaluation suite within a context space."
              },
              "name": "evaluation",
              "default": {
                "schedule": {
                  "frequency": "DAILY"
                },
                "enabled": false
              },
              "doc": "Settings for the evaluation suite."
            }
          ],
          "doc": "Global settings for AI-powered context evaluation.\n\nContext document generation is configured separately as a system ingestion source.\nThis record holds settings for the evaluation suite that scores context documents."
        }
      ],
      "name": "aiContext",
      "default": null,
      "doc": "Settings for AI-powered context document generation and evaluation."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "McpSettings",
          "namespace": "com.linkedin.pegasus2avro.settings.global",
          "fields": [
            {
              "type": "boolean",
              "name": "observationTelemetryEnabled",
              "default": true,
              "doc": "Whether telemetry emitted by MCP tools (e.g. note_metadata_observation) is enabled.\nWhen false the integrations service skips all Mixpanel / tracking calls for MCP-originated events."
            }
          ],
          "doc": "Settings related to MCP (Model Context Protocol) server behaviour."
        }
      ],
      "name": "mcpSettings",
      "default": null,
      "doc": "Settings related to MCP (Model Context Protocol) server behaviour."
    }
  ],
  "doc": "DataHub Global platform settings. Careful - these should not be modified by the outside world!"
}