{
  "type": "record",
  "Aspect": {
    "name": "globalSettingsInfo"
  },
  "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."
                    }
                  ],
                  "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"
            }
          ],
          "doc": "Global settings for the UI"
        }
      ],
      "name": "visual",
      "default": null,
      "doc": "Global settings related to the UI and what's displayed in the app"
    }
  ],
  "doc": "DataHub Global platform settings. Careful - these should not be modified by the outside world!"
}