Naslaginformatie over gegevensconnectordefinities voor het connectorframework zonder code

Als u een gegevensconnector wilt maken met het Codeless Connector Framework (CCF), gebruikt u dit document als aanvulling op de referentiedocumenten Microsoft Sentinel REST API for Data Connector Definitions. In dit referentiedocument wordt de volgende sectie uitgebreid:

  • connectorUiConfig- definieert de visuele elementen en tekst die worden weergegeven op de gegevensconnectorpagina in Microsoft Sentinel.

Zie Een connector zonder code maken voor meer informatie.

Definities van gegevensconnector - Maken of bijwerken

Raadpleeg de bewerking Maken of Bijwerken in de REST API-documenten om de nieuwste stabiele of preview-API-versie te vinden. Alleen voor de update bewerking is de etag waarde vereist.

PUT-methode

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/{{dataConnectorDefinitionName}}?api-version={{apiVersion}}

URI-parameters

Zie Definities van gegevensconnector - URI-parameters maken of bijwerken voor meer informatie over de nieuwste API-versie

Naam Beschrijving
dataConnectorDefinitionName De definitie van de gegevensconnector moet een unieke naam hebben en dezelfde is als de name parameter in de aanvraagbody.
resourceGroupName De naam van de resourcegroep, niet hoofdlettergevoelig.
subscriptionId De id van het doelabonnement.
workspaceName De naam van de werkruimte, niet de id.
Regex-patroon: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-versie De API-versie die voor deze bewerking moet worden gebruikt.

Aanvraagtekst

De aanvraagbody voor het maken van een CCF-gegevensconnectordefinitie met de API heeft de volgende structuur:

{
    "kind": "Customizable",
    "properties": {
        "connectorUIConfig": {}
    }
}

dataConnectorDefinition heeft de volgende eigenschappen:

Naam Vereist Type Beschrijving
Soort Waar Tekenreeks Customizable voor API polling-gegevensconnector of Static anderszins
Eigenschappen. connectorUiConfig Waar Geneste JSON
connectorUiConfig
De ui-configuratie-eigenschappen van de gegevensconnector

De gebruikersinterface van uw connector configureren

In deze sectie worden de configuratieopties beschreven die beschikbaar zijn om de gebruikersinterface van de gegevensconnectorpagina aan te passen.

In de volgende schermopname ziet u een voorbeeldpagina voor gegevensconnector, gemarkeerd met getallen die overeenkomen met belangrijke gebieden van de gebruikersinterface.

Schermopname van een voorbeeldpagina van een gegevensconnector met secties met het label 1 tot en met 9.

Elk van de volgende elementen van de connectorUiConfig sectie die nodig is om de gebruikersinterface te configureren, komt overeen met het gedeelte CustomizableConnectorUiConfig van de API.

Veld Vereist Type Beschrijving Schermopname van opmerkelijk gebied #
Titel Waar tekenreeks Titel die wordt weergegeven op de pagina van de gegevensconnector 1
in tekenreeks Hiermee stelt u de id van de aangepaste connector in voor intern gebruik
Logo tekenreeks Pad naar afbeeldingsbestand in SVG-indeling. Als er geen waarde is geconfigureerd, wordt een standaardlogo gebruikt. 2
Publisher Waar tekenreeks De provider van de connector 3
beschrijvingMarkdown Waar tekenreeks in markdown Een beschrijving voor de connector met de mogelijkheid om markdown-taal toe te voegen om deze te verbeteren. 4
sampleQueries Waar Geneste JSON
sampleQueries
Query's voor de klant om te begrijpen hoe de gegevens in het gebeurtenislogboek kunnen worden gevonden.
graphQueries Waar Geneste JSON
graphQueries
Query's met gegevensopname in de afgelopen twee weken.

Geef één query op voor alle gegevenstypen van de gegevensconnector of een andere query voor elk gegevenstype.
5
graphQueriesTableName Hiermee stelt u de naam in van de tabel waaraan de connector gegevens invoegt. Deze naam kan in andere query's worden gebruikt door een tijdelijke aanduiding in graphQueries en lastDataReceivedQuery op te {{graphQueriesTableName}} geven.
Datatypes Waar Geneste JSON
Datatypes
Een lijst met alle gegevenstypen voor uw connector en een query om de tijd van de laatste gebeurtenis voor elk gegevenstype op te halen. 6
connectivityCriteria Waar Geneste JSON
connectivityCriteria
Een object dat definieert hoe u kunt controleren of de connector is verbonden. 7
Beschikbaarheid Geneste JSON
Beschikbaarheid
Een object dat de beschikbaarheidsstatus van de connector definieert.
Machtigingen Waar Geneste JSON
Machtigingen
De informatie die wordt weergegeven in de sectie Vereisten van de gebruikersinterface, waarin de machtigingen worden vermeld die nodig zijn om de connector in of uit te schakelen. 8
instructionSteps Waar Geneste JSON
Instructies
Een matrix met widgetonderdelen waarin wordt uitgelegd hoe u de connector installeert en besturingselementen die kunnen worden uitgevoerd op het tabblad Instructies . 9
isConnectivityCriteriasMatchSome Booleaanse waarde Een booleaanse waarde die aangeeft of u 'OR'(SOME) of 'AND' moet gebruiken tussen ConnectivityCriteria-items.

connectivityCriteria

Veld Vereist Type Beschrijving
Type Waar Tekenreeks Een van de twee volgende opties: HasDataConnectors - deze waarde is het beste voor API-pollinggegevensconnectors, zoals de CCF. De connector wordt beschouwd als verbonden met ten minste één actieve verbinding.

isConnectedQuery – deze waarde is het meest geschikt voor andere typen gegevensconnectors. De connector wordt beschouwd als verbonden wanneer de opgegeven query gegevens retourneert.
Waarde Waar wanneer het type is isConnectedQuery Tekenreeks Een query om te bepalen of gegevens binnen een bepaalde periode worden ontvangen. Bijvoorbeeld:CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)"

Datatypes

Matrixwaarde Type Beschrijving
Naam Tekenreeks Een zinvolle beschrijving voor delastDataReceivedQuery, inclusief ondersteuning voor de graphQueriesTableName variabele.

Voorbeeld: {{graphQueriesTableName}}
lastDataReceivedQuery Tekenreeks Een KQL-query die één rij retourneert en de laatste keer aangeeft dat gegevens zijn ontvangen, of geen gegevens als er geen resultaten zijn.

Voorbeeld: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)

graphQueries

Definieert een query die gegevensopname over de afgelopen twee weken weergeeft.

Geef één query op voor alle gegevenstypen van de gegevensconnector of een andere query voor elk gegevenstype.

Matrixwaarde Type Beschrijving
metricName Tekenreeks Een duidelijke naam voor uw grafiek.

Voorbeeld: Total data received
Legende Tekenreeks De tekenreeks die wordt weergegeven in de legenda rechts van de grafiek, inclusief een variabele verwijzing.

Voorbeeld: {{graphQueriesTableName}}
baseQuery Tekenreeks De query die filtert op relevante gebeurtenissen, inclusief een variabele verwijzing.

Voorbeeld: TableName_CL | where ProviderName == "myprovider" of {{graphQueriesTableName}}

Beschikbaarheid

Veld Vereist Type Beschrijving
Status Geheel getal De beschikbaarheidsstatus van de connector.
Beschikbaar = 1
Functievlag = 2
Binnenkort beschikbaar = 3
Intern = 4
isPreview Booleaanse waarde Een Booleaanse waarde die aangeeft of de connector zich in de preview-modus bevindt.

Machtigingen

Matrixwaarde Type Beschrijving
Douane Tekenreeks Beschrijft alle aangepaste machtigingen die zijn vereist voor uw gegevensverbinding, in de volgende syntaxis:
{
"name":tekenreeks,
"description":tekenreeks
}

Voorbeeld: de douanewaarde wordt weergegeven in Microsoft Sentinel sectie Vereisten met een blauw informatiepictogram. In het GitHub-voorbeeld correleert deze waarde met de regel Persoonlijke tokensleutel van GitHub API: U hebt toegang nodig tot het persoonlijke GitHub-token...
Licenties ENUM Definieert de vereiste licenties als een van de volgende waarden: OfficeIRM,OfficeATP, Office365, AadP1P2, Mcas, Aatp, Mdatp, , MtpIoT

Voorbeeld: De waarde voor licenties wordt in Microsoft Sentinel weergegeven als: Licentie: vereist Azure AD Premium P2
resourceProvider resourceProvider Hierin worden eventuele vereisten voor uw Azure-resource beschreven.

Voorbeeld: De waarde resourceProvider wordt in Microsoft Sentinel sectie Vereisten weergegeven als:
Werkruimte: lees- en schrijfmachtiging is vereist.
Sleutels: leesmachtigingen voor gedeelde sleutels voor de werkruimte zijn vereist.
Huurder matrix van ENUM-waarden
Voorbeeld:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
Definieert de vereiste machtigingen als een of meer van de volgende waarden: "GlobalAdmin", "SecurityAdmin", "SecurityReader", , "InformationProtection"

Voorbeeld: geeft de tenantwaarde in Microsoft Sentinel weer als: Tenantmachtigingen: Vereist Global Administrator of Security Administrator voor de tenant van de werkruimte

Belangrijk

Microsoft raadt u aan rollen te gebruiken met de minste machtigingen. Dit helpt bij het verbeteren van de beveiliging voor uw organisatie. Globale beheerder is een zeer bevoorrechte rol die moet worden beperkt tot scenario's voor noodgevallen wanneer u een bestaande rol niet kunt gebruiken.

resourceProvider

submatrixwaarde Type Beschrijving
Provider ENUM Beschrijft de resourceprovider, met een van de volgende waarden:
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName Tekenreeks Een lijstitem onder Vereisten dat een rood 'x' of groen vinkje weergeeft wanneer de requiredPermissions worden gevalideerd op de connectorpagina. Voorbeeld "Workspace"
permissionsDisplayText Tekenreeks Tekst weergeven voor lees-, schrijf- of lees- en schrijfmachtigingen die moeten overeenkomen met de waarden die zijn geconfigureerd in requiredPermissions
requiredPermissions {
"action":Booleaanse waarde,
"delete":Booleaanse waarde,
"read":Booleaanse waarde,
"write":Booleaanse waarde
}
Hierin worden de minimale machtigingen beschreven die vereist zijn voor de connector.
Scope ENUM Beschrijft het bereik van de gegevensconnector als een van de volgende waarden: "Subscription", "ResourceGroup", "Workspace"

sampleQueries

matrixwaarde Type Beschrijving
Beschrijving Tekenreeks Een zinvolle beschrijving voor de voorbeeldquery.

Voorbeeld: Top 10 vulnerabilities detected
query Tekenreeks Voorbeeldquery die wordt gebruikt om de gegevens van het gegevenstype op te halen.

Voorbeeld: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

Als u een inlinekoppeling wilt definiëren met markdown, gebruikt u het volgende voorbeeld.

{
   "title": "",
   "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}

Als u een koppeling wilt definiëren als een ARM-sjabloon, gebruikt u het volgende voorbeeld als richtlijn:

{
   "title": "Azure Resource Manager (ARM) template",
   "description": "1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({URL to custom ARM template})"
}

instructionSteps

Deze sectie bevat parameters die de set instructies definiëren die worden weergegeven op de pagina van de gegevensconnector in Microsoft Sentinel en heeft de volgende structuur:

"instructionSteps": [
    {
        "title": "",
        "description": "",
        "instructions": [
        {
            "type": "",
            "parameters": {}
        }
        ],
        "innerSteps": {}
    }
]
Matrixeigenschap Vereist Type Beschrijving
Titel Tekenreeks Definieert een titel voor uw instructies.
Beschrijving Tekenreeks Definieert een zinvolle beschrijving voor uw instructies.
innerSteps Array Definieert een matrix met interne instructiestappen.
Instructies Waar Matrix met instructies Definieert een matrix met instructies van een specifiek parametertype.

Instructies

Geeft een groep instructies weer, met verschillende parameters en de mogelijkheid om meer instructies te nestenStappen in groepen. Parameters die hier zijn gedefinieerd, komen overeen

Type Matrixeigenschap Beschrijving
OAuthForm OAuthForm Verbinding maken met OAuth
Textbox Textbox Dit koppelt met ConnectionToggleButton. Er zijn vier typen beschikbaar:
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton Activeer de implementatie van de DCR op basis van de verbindingsgegevens die via tijdelijke parameters worden verstrekt. De volgende parameters worden ondersteund:
  • name :Verplicht
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • CopyableLabel CopyableLabel Toont een tekstveld met een kopieerknop aan het einde. Wanneer de knop is geselecteerd, wordt de waarde van het veld gekopieerd.
    Dropdown Dropdown Geeft een vervolgkeuzelijst weer met opties waaruit de gebruiker kan kiezen.
    Markdown Markdown Geeft een sectie met tekst weer die is opgemaakt met Markdown.
    DataConnectorsGrid DataConnectorsGrid Geeft een raster met gegevensconnectors weer.
    ContextPane ContextPane Hiermee wordt een deelvenster met contextuele informatie weergegeven.
    InfoMessage InfoMessage Definieert een inline-informatiebericht.
    InstructionStepsGroup InstructionStepsGroup Geeft een groep instructies weer, optioneel uitgevouwen of samenvouwbaar, in een afzonderlijke sectie met instructies.
    InstallAgent InstallAgent Geeft een koppeling weer naar andere delen van Azure om aan verschillende installatievereisten te voldoen.
    OAuthForm

    Dit onderdeel vereist dat het OAuth2 type aanwezig is in de auth eigenschap van de gegevensconnectorsjabloon.

    "instructions": [
    {
      "type": "OAuthForm",
      "parameters": {
        "clientIdLabel": "Client ID",
        "clientSecretLabel": "Client Secret",
        "connectButtonLabel": "Connect",
        "disconnectButtonLabel": "Disconnect"
      }          
    }
    ]
    
    Textbox

    Hier volgen enkele voorbeelden van het Textbox type. Deze voorbeelden komen overeen met de parameters die worden gebruikt in de voorbeeldsectie auth in Naslaginformatie over gegevensconnectors voor het Codeless Connector Framework. Voor elk van de vier typen heeft labelelk , placeholderen name.

    "instructions": [
    {
      "type": "Textbox",
      "parameters": {
          {
            "label": "User name",
            "placeholder": "User name",
            "type": "text",
            "name": "username"
          }
      }
    },
    {
      "type": "Textbox",
      "parameters": {
          "label": "Secret",
          "placeholder": "Secret",
          "type": "password",
          "name": "password"
      }
    }
    ]
    
    ConnectionToggleButton
    "instructions": [
    {
      "type": "ConnectionToggleButton",
      "parameters": {
        "connectLabel": "toggle",
        "name": "toggle"
      }          
    }
    ]
    
    CopyableLabel

    Voorbeeld:

    Schermopname van de knop Kopieerwaarde in een veld.

    Voorbeeldcode:

    {
        "parameters": {
            "fillWith": [
                "WorkspaceId",
                "PrimaryKey"
                ],
            "label": "Here are some values you'll need to proceed.",
            "value": "Workspace is {0} and PrimaryKey is {1}"
        },
        "type": "CopyableLabel"
    }
    
    Matrixwaarde Vereist Type Beschrijving
    fillWith ENUM Matrix met omgevingsvariabelen die worden gebruikt om een tijdelijke aanduiding te vullen. Scheid meerdere tijdelijke aanduidingen met komma's. Bijvoorbeeld:{0},{1}

    Ondersteunde waarden: workspaceId, workspaceName, primaryKey, MicrosoftAwsAccount, , subscriptionId
    Label Waar Tekenreeks Hiermee definieert u de tekst voor het label boven een tekstvak.
    Waarde Waar Tekenreeks Definieert de waarde die in het tekstvak moet worden weergegeven, ondersteunt tijdelijke aanduidingen.
    Rijen Rijen Hiermee definieert u de rijen in het gebruikersinterfacegebied. Stel standaard in op 1.
    wideLabel Booleaanse waarde Hiermee bepaalt u een breed label voor lange tekenreeksen. Stel standaard in op false.
    {
      "parameters": {
        "label": "Select an option",
        "name": "dropdown",
        "options": [
          {
            "key": "Option 1",
            "text": "option1"
          },
          {
            "key": "Option 2",
            "text": "option2"
          }
        ],
        "placeholder": "Select an option",
        "isMultiSelect": false,
        "required": true,
        "defaultAllSelected": false
      },
      "type": "Dropdown"
    }
    
    Veld Vereist Type Beschrijving
    Label Waar Tekenreeks Hiermee definieert u de tekst voor het label boven de vervolgkeuzelijst.
    Naam Waar Tekenreeks Definieert de unieke naam voor de vervolgkeuzelijst. Dit wordt gebruikt in polling-configuratie.
    Opties Waar Array Definieert de lijst met opties voor de vervolgkeuzelijst.
    Tijdelijke aanduiding Tekenreeks Hiermee definieert u de tijdelijke tekst voor de vervolgkeuzelijst.
    isMultiSelect Booleaanse waarde Bepaalt of meerdere opties kunnen worden geselecteerd. Stel standaard in op false.
    Vereist Booleaanse waarde Als true, moet de vervolgkeuzelijst worden ingevuld.
    defaultAllSelected Booleaanse waarde Als true, zijn alle opties standaard geselecteerd.
    Markdown
    {
      "parameters": {
        "content": "## This is a Markdown section\n\nYou can use **bold** text, _italic_ text, and even [links](https://www.example.com)."
      },
      "type": "Markdown"
    }
    
    DataConnectorsGrid
    {
      "type": "DataConnectorsGrid",
      "parameters": {
        "mapping": [
          {
            "columnName": "Column 1",
            "columnValue": "Value 1"
          },
          {
            "columnName": "Column 2",
            "columnValue": "Value 2"
          }
        ],
        "menuItems": [
          "MyConnector"
        ]
      }
    }
    
    
    Veld Vereist Type Beschrijving
    Toewijzing Waar Array Hiermee definieert u de toewijzing van kolommen in het raster.
    menuItems Array Definieert de menu-items voor het raster.
    ContextPane
    {
      "type": "ContextPane",
      "parameters": {
        "isPrimary": true,
        "label": "Add Account",
        "title": "Add Account",
        "subtitle": "Add Account",
        "contextPaneType": "DataConnectorsContextPane",
        "instructionSteps": [
          {
            "instructions": [
              {
                "type": "Textbox",
                "parameters": {
                  "label": "Snowflake Account Identifier",
                  "placeholder": "Enter Snowflake Account Identifier",
                  "type": "text",
                  "name": "accountId",
                  "validations": {
                    "required": true
                  }
                }
              },
              {
                "type": "Textbox",
                "parameters": {
                  "label": "Snowflake PAT",
                  "placeholder": "Enter Snowflake PAT",
                  "type": "password",
                  "name": "apikey",
                  "validations": {
                    "required": true
                  }
                }
              }
            ]
          }
        ]
      }
    }
    
    Veld Vereist Type Beschrijving
    Titel Waar Tekenreeks De titel voor het contextvenster.
    Ondertitel Waar Tekenreeks De ondertitel voor het contextvenster.
    contextPaneType Waar Tekenreeks Het type van het contextvenster.
    instructionSteps Waar Array
    instructionSteps
    De instructiestappen voor het contextvenster.
    Label Tekenreeks Het label voor het contextvenster.
    isPrimary Booleaanse waarde Geeft aan of dit het primaire contextvenster is.
    InfoMessage

    Hier volgt een voorbeeld van een inline-informatiebericht:

    Schermopname van een inline-informatiebericht.

    In de volgende afbeelding ziet u daarentegen een informatiebericht dat niet inline is:

    Schermopname van een informatiebericht dat niet inline is.

    Matrixwaarde Type Beschrijving
    Tekst Tekenreeks Definieer de tekst die in het bericht moet worden weergegeven.
    Zichtbaar Booleaanse waarde Bepaalt of het bericht wordt weergegeven.
    Inline Booleaanse waarde Bepaalt hoe het informatiebericht wordt weergegeven.

    - true: (Aanbevolen) Geeft het informatiebericht weer dat is ingesloten in de instructies.
    - false: Voegt een blauwe achtergrond toe.
    InstructionStepsGroup

    Hier volgt een voorbeeld van een uitbreidbare instructiegroep:

    Schermopname van een uitbreidbare, extra instructiegroep.

    Matrixwaarde Vereist Type Beschrijving
    Titel Waar Tekenreeks Hiermee definieert u de titel voor de instructiestap.
    Beschrijving Tekenreeks Optionele beschrijvende tekst.
    canCollapseAllSections Booleaanse waarde Bepaalt of de sectie een samenvouwbare accordeon is of niet.
    noFxPadding Booleaanse waarde Als true, vermindert de opvulling in hoogte om ruimte te besparen.
    Uitgebreid Booleaanse waarde If true, wordt standaard weergegeven als uitgevouwen.

    Zie de configuratie-JSON voor de Windows DNS-connector voor een gedetailleerd voorbeeld.

    InstallAgent

    Sommige InstallAgent-typen worden weergegeven als een knop, andere als koppeling. Hier volgen voorbeelden van beide:

    Schermopname van een koppeling die als knop is toegevoegd.

    Schermopname van een koppeling die is toegevoegd als inlinetekst.

    Matrixwaarden Vereist Type Beschrijving
    linkType Waar ENUM Bepaalt het koppelingstype als een van de volgende waarden:

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall OpenMicrosoftAzureMonitoring
    OpenFrontDoors
    OpenCdnProfile
    AutomaticDeploymentCEF
    OpenAzureInformationProtection
    OpenAzureActivityLog
    OpenIotPricingModel
    OpenPolicyAssignment
    OpenAllAssignmentsBlade
    OpenCreateDataCollectionRule
    policyDefinitionGuid True bij gebruik van OpenPolicyAssignment linkType. Tekenreeks Voor op beleid gebaseerde connectors definieert u de GUID van de ingebouwde beleidsdefinitie.
    assignMode ENUM Voor op beleid gebaseerde connectors definieert u de toewijzingsmodus als een van de volgende waarden: Initiative, Policy
    dataCollectionRuleType ENUM Voor DCR-connectors definieert u het type regeltype voor gegevensverzameling als SecurityEvent, of ForwardEvent.

    Voorbeeld van gegevensconnectordefinitie

    In het volgende voorbeeld worden enkele onderdelen samengebracht die in dit artikel zijn gedefinieerd als een JSON-hoofdtekstindeling voor gebruik met de definitie-API voor gegevensconnector maken of bijwerken.

    Bekijk andere CCF-gegevensconnectors voor meer voorbeeldenconnectorUiConfig. Zelfs connectors die gebruikmaken van de verouderde CCF hebben geldige voorbeelden van het maken van de gebruikersinterface.

    {
        "kind": "Customizable",
        "properties": {
            "connectorUiConfig": {
              "title": "Example CCF Data Connector",
              "publisher": "My Company",
              "descriptionMarkdown": "This is an example of data connector",
              "graphQueriesTableName": "ExampleConnectorAlerts_CL",
              "graphQueries": [
                {
                  "metricName": "Alerts received",
                  "legend": "My data connector alerts",
                  "baseQuery": "{{graphQueriesTableName}}"
                },   
               {
                  "metricName": "Events received",
                  "legend": "My data connector events",
                  "baseQuery": "ASIMFileEventLogs"
                }
              ],
                "sampleQueries": [
                {
                    "description": "All alert logs",
                    "query": "{{graphQueriesTableName}} \n | take 10"
                }
              ],
              "dataTypes": [
                {
                  "name": "{{graphQueriesTableName}}",
                  "lastDataReceivedQuery": "{{graphQueriesTableName}} \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                },
                 {
                  "name": "ASIMFileEventLogs",
                  "lastDataReceivedQuery": "ASIMFileEventLogs \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                 }
              ],
              "connectivityCriteria": [
                {
                  "type": "HasDataConnectors"
                }
              ],
              "permissions": {
                "resourceProvider": [
                  {
                    "provider": "Microsoft.OperationalInsights/workspaces",
                    "permissionsDisplayText": "Read and Write permissions are required.",
                    "providerDisplayName": "Workspace",
                    "scope": "Workspace",
                    "requiredPermissions": {
                      "write": true,
                      "read": true,
                      "delete": true
                    }
                  },
                ],
                "customs": [
                  {
                    "name": "Example Connector API Key",
                    "description": "The connector API key username and password is required"
                  }
                ] 
            },
              "instructionSteps": [
                {
                  "title": "Connect My Connector to Microsoft Sentinel",
                  "description": "To enable the connector provide the required information below and click on Connect.\n>",
                  "instructions": [
                   {
                      "type": "Textbox",
                      "parameters": {
                        "label": "User name",
                        "placeholder": "User name",
                        "type": "text",
                        "name": "username"
                      }
                    },
                    {
                      "type": "Textbox",
                      "parameters": {
                        "label": "Secret",
                        "placeholder": "Secret",
                        "type": "password",
                        "name": "password"
                      }
                    },
                    {
                      "type": "ConnectionToggleButton",
                      "parameters": {
                        "connectLabel": "toggle",
                        "name": "toggle"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }