Dokumentacja definicji łącznika danych dla struktury łączników bez kodu

Aby utworzyć łącznik danych z programem Codeless Connector Framework (CCF), użyj tego dokumentu jako dodatku do dokumentacji interfejsu API REST Microsoft Sentinel dla definicji łącznika danych. W szczególności ten dokument referencyjny jest rozwijany w następującej sekcji:

  • connectorUiConfig— definiuje elementy wizualizacji i tekst wyświetlany na stronie łącznika danych w Microsoft Sentinel.

Aby uzyskać więcej informacji, zobacz Tworzenie łącznika bez kodu.

Definicje łącznika danych — tworzenie lub aktualizowanie

Zapoznaj się z operacją Tworzenie lub aktualizowanie w dokumentacji interfejsu API REST, aby znaleźć najnowszą stabilną wersję interfejsu API lub wersję zapoznawczą. update Tylko operacja wymaga etag wartości.

PUT , metoda

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

Parametry identyfikatora URI

Aby uzyskać więcej informacji na temat najnowszej wersji interfejsu API, zobacz Definicje łącznika danych — Tworzenie lub aktualizowanie parametrów identyfikatora URI

Name (Nazwa) Opis
dataConnectorDefinitionName Definicja łącznika danych musi być unikatową nazwą i jest taka sama jak name parametr w treści żądania.
resourceGroupName Nazwa grupy zasobów, a nie uwzględnia wielkość liter.
Subscriptionid Identyfikator subskrypcji docelowej.
nazwa obszaru roboczego Nazwa obszaru roboczego, a nie identyfikator.
Wzorzec regex: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
wersja interfejsu API Wersja interfejsu API do użycia dla tej operacji.

Treść żądania

Treść żądania dotycząca tworzenia definicji łącznika danych CCF przy użyciu interfejsu API ma następującą strukturę:

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

DataConnectorDefinition ma następujące właściwości:

Name (Nazwa) Wymagany Typ Opis
Rodzaju True Ciąg Customizable dla łącznika danych sondowania interfejsu API lub Static w inny sposób
Właściwości. connectorUiConfig True Zagnieżdżony kod JSON
connectorUiConfig
Właściwości konfiguracji interfejsu użytkownika łącznika danych

Konfigurowanie interfejsu użytkownika łącznika

W tej sekcji opisano dostępne opcje konfiguracji w celu dostosowania interfejsu użytkownika strony łącznika danych.

Poniższy zrzut ekranu przedstawia przykładową stronę łącznika danych z wyróżnionymi liczbami odpowiadającymi istotnym obszarom interfejsu użytkownika.

Zrzut ekranu przedstawiający przykładową stronę łącznika danych z sekcjami z etykietą od 1 do 9.

Każdy z następujących elementów sekcji potrzebnych connectorUiConfig do skonfigurowania interfejsu użytkownika odpowiada części CustomizableConnectorUiConfig interfejsu API.

Pole Wymagany Typ Opis Zrzut ekranu przedstawiający istotny obszar #
Tytuł True ciąg Tytuł wyświetlany na stronie łącznika danych 1
id ciąg Ustawia niestandardowy identyfikator łącznika dla użycia wewnętrznego
Logo ciąg Ścieżka do pliku obrazu w formacie SVG. Jeśli żadna wartość nie jest skonfigurowana, używane jest logo domyślne. 2
Wydawca True ciąg Dostawca łącznika 3
descriptionMarkdown True ciąg w języku markdown Opis łącznika z możliwością dodawania języka markdown w celu jego ulepszenia. 4
sampleQueries True Zagnieżdżony kod JSON
sampleQueries
Wysyła zapytanie do klienta, aby dowiedzieć się, jak znaleźć dane w dzienniku zdarzeń.
GraphQueries True Zagnieżdżony kod JSON
GraphQueries
Zapytania przedstawiające pozyskiwanie danych w ciągu ostatnich dwóch tygodni.

Podaj jedno zapytanie dla wszystkich typów danych łącznika danych lub inne zapytanie dla każdego typu danych.
5
graphQueriesTableName Ustawia nazwę tabeli, do którego łącznik wstawia dane. Tej nazwy można używać w innych zapytaniach, określając {{graphQueriesTableName}} symbol zastępczy i graphQuerieslastDataReceivedQuery wartości.
dataTypes True Zagnieżdżony kod JSON
dataTypes
Lista wszystkich typów danych dla łącznika i zapytanie umożliwiające pobranie czasu ostatniego zdarzenia dla każdego typu danych. 6
łącznośćCriteria True Zagnieżdżony kod JSON
łącznośćCriteria
Obiekt definiujący sposób sprawdzania, czy łącznik jest połączony. 7
Dostępność Zagnieżdżony kod JSON
Dostępność
Obiekt definiujący stan dostępności łącznika.
Uprawnienia True Zagnieżdżony kod JSON
Uprawnienia
Informacje wyświetlane w sekcji Wymagania wstępne interfejsu użytkownika, która zawiera listę uprawnień wymaganych do włączenia lub wyłączenia łącznika. 8
instructionSteps True Zagnieżdżony kod JSON
Instrukcje
Tablica części widżetów, które wyjaśniają sposób instalowania łącznika, oraz kontrolki z możliwością działania wyświetlane na karcie Instrukcje . 9
isConnectivityCriteriasMatchSome logiczny Wartość logiczna wskazująca, czy należy używać wartości "OR" (NIEKTÓRE) lub "AND" między elementami ConnectivityCriteria.

łącznośćCriteria

Pole Wymagany Typ Opis
Typ True Ciąg Jedna z dwóch następujących opcji: HasDataConnectors — ta wartość jest najlepsza dla łączników danych sondowania interfejsu API, takich jak CCF. Łącznik jest uznawany za połączony z co najmniej jednym aktywnym połączeniem.

isConnectedQuery — ta wartość jest najlepsza w przypadku innych typów łączników danych. Łącznik jest traktowany jako połączony, gdy podane zapytanie zwraca dane.
Value Prawda, gdy typ jest isConnectedQuery Ciąg Zapytanie określające, czy dane są odbierane w określonym okresie. Przykład: CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)"

dataTypes

Wartość tablicy Typ Opis
Nazwa Ciąg Opis zrozumiały dla zmiennejlastDataReceivedQuery, w tym obsługa zmiennej graphQueriesTableName .

Przykład: {{graphQueriesTableName}}
lastDataReceivedQuery Ciąg Zapytanie KQL zwracające jeden wiersz i wskazujące czas ostatniego odebrania danych lub brak danych, jeśli nie ma wyników.

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

GraphQueries

Definiuje zapytanie, które przedstawia pozyskiwanie danych w ciągu ostatnich dwóch tygodni.

Podaj jedno zapytanie dla wszystkich typów danych łącznika danych lub inne zapytanie dla każdego typu danych.

Wartość tablicy Typ Opis
metricName Ciąg Znacząca nazwa grafu.

Przykład: Total data received
Legendy Ciąg Ciąg wyświetlany w legendzie po prawej stronie wykresu, w tym odwołanie do zmiennej.

Przykład: {{graphQueriesTableName}}
baseQuery Ciąg Zapytanie, które filtruje odpowiednie zdarzenia, w tym odwołanie do zmiennej.

Przykład: TableName_CL | where ProviderName == "myprovider" lub {{graphQueriesTableName}}

Dostępność

Pole Wymagany Typ Opis
Stan Liczba całkowita Stan dostępności łącznika.
Dostępne = 1
Flaga funkcji = 2
Wkrótce = 3
Wewnętrzny = 4
isPreview logiczny Wartość logiczna wskazująca, czy łącznik jest w trybie podglądu.

uprawnienia

Wartość tablicy Typ Opis
Celnej Ciąg Opis wszelkich uprawnień niestandardowych wymaganych dla połączenia danych w następującej składni:
{
"name":ciąg,
"description":ciąg
}

Przykład: Wartość celna jest wyświetlana w sekcji Microsoft Sentinel Wymagania wstępne z niebieską ikoną informacyjną. W przykładzie usługi GitHub ta wartość jest skorelowana z wierszem Klucz osobistego tokenu interfejsu API usługi GitHub: potrzebny jest dostęp do osobistego tokenu usługi GitHub...
Licencje ENUM Definiuje wymagane licencje jako jedną z następujących wartości: OfficeIRM,OfficeATP, , Office365, AadP1P2Mcas, , Aatp, Mdatp, , MtpIoT

Przykład: wartość licencji jest wyświetlana w Microsoft Sentinel jako: Licencja: Wymagane Azure AD — wersja Premium P2
resourceProvider resourceProvider Opisuje wszelkie wymagania wstępne dotyczące zasobu Azure.

Przykład: wartość resourceProvider jest wyświetlana w sekcji Microsoft Sentinel Wymagania wstępne jako:
Obszar roboczy: wymagane jest uprawnienie do odczytu i zapisu.
Klucze: wymagane są uprawnienia do odczytu kluczy udostępnionych dla obszaru roboczego.
Dzierżawy tablica wartości ENUM
Przykład:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
Definiuje wymagane uprawnienia jako co najmniej jedną z następujących wartości: "GlobalAdmin", "SecurityAdmin", , "SecurityReader""InformationProtection"

Przykład: wyświetla wartość dzierżawy w Microsoft Sentinel jako: Uprawnienia dzierżawy: Wymaga Global Administrator lub Security Administrator w dzierżawie obszaru roboczego

Ważna

Firma Microsoft rekomenduje używanie ról z najmniejszą liczbą uprawnień. Pomaga to zwiększyć bezpieczeństwo organizacji. Administrator globalny to rola o wysokim poziomie uprawnień, która powinna być ograniczona do scenariuszy awaryjnych, gdy nie można użyć istniejącej roli.

resourceProvider

wartość tablicy podrzędnej Typ Opis
Dostawca ENUM Opisuje dostawcę zasobów z jedną z następujących wartości:
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName Ciąg Element listy w obszarze Wymagania wstępne , który wyświetla czerwony znacznik wyboru "x" lub zielony, gdy wymaganePermissions są weryfikowane na stronie łącznika. Przykład "Workspace"
permissionsDisplayText Ciąg Wyświetlanie tekstu dla uprawnień odczytu, zapisu lub odczytu i zapisu , które powinny odpowiadać wartościom skonfigurowanym w parametrach requiredPermissions
requiredPermissions {
"action":Wartość logiczna,
"delete":Wartość logiczna,
"read":Wartość logiczna,
"write":Wartość logiczna
}
W tym artykule opisano minimalne uprawnienia wymagane dla łącznika.
Zakres ENUM Opisuje zakres łącznika danych jako jedną z następujących wartości: "Subscription", , "ResourceGroup""Workspace"

sampleQueries

wartość tablicy Typ Opis
Opis Ciąg Opis opisu przykładowego zapytania.

Przykład: Top 10 vulnerabilities detected
Kwerendy Ciąg Przykładowe zapytanie używane do pobierania danych typu danych.

Przykład: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

Aby zdefiniować link wbudowany przy użyciu języka markdown, użyj następującego przykładu.

{
   "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)"
}

Aby zdefiniować link jako szablon usługi ARM, skorzystaj z następującego przykładu jako przewodnika:

{
   "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

Ta sekcja zawiera parametry definiujące zestaw instrukcji, które są wyświetlane na stronie łącznika danych w Microsoft Sentinel i mają następującą strukturę:

"instructionSteps": [
    {
        "title": "",
        "description": "",
        "instructions": [
        {
            "type": "",
            "parameters": {}
        }
        ],
        "innerSteps": {}
    }
]
Właściwość tablicy Wymagany Typ Opis
Tytuł Ciąg Definiuje tytuł instrukcji.
Opis Ciąg Definiuje zrozumiały opis instrukcji.
innerSteps Tablicy Definiuje tablicę wewnętrznych kroków instrukcji.
Instrukcje True Tablica instrukcji Definiuje tablicę instrukcji określonego typu parametru.

Instrukcje

Wyświetla grupę instrukcji z różnymi parametrami i możliwością zagnieżdżania większej liczby instrukcjiKroki w grupach. Parametry zdefiniowane tutaj odpowiadają

Typ Właściwość Array Opis
OAuthForm OAuthForm Nawiązywanie połączenia za pomocą uwierzytelniania OAuth
Textbox Textbox Ta funkcja jest parą z elementem ConnectionToggleButton. Dostępne są 4 typy:
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton Wyzwól wdrożenie dcr na podstawie informacji o połączeniu dostarczonych za pośrednictwem parametrów symbolu zastępczego. Obsługiwane są następujące parametry:
  • name :Obowiązkowe
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • CopyableLabel CopyableLabel Pokazuje pole tekstowe z przyciskiem kopiowania na końcu. Po wybraniu przycisku wartość pola jest kopiowana.
    Rozwijanego Rozwijanego Wyświetla listę rozwijaną opcji do wyboru przez użytkownika.
    Markdown Markdown Wyświetla sekcję tekstu sformatowaną przy użyciu języka Markdown.
    DataConnectorsGrid DataConnectorsGrid Wyświetla siatkę łączników danych.
    KontekstPane KontekstPane Wyświetla okienko informacji kontekstowych.
    Infomessage Infomessage Definiuje wbudowany komunikat informacyjny.
    InstructionStepsGroup InstructionStepsGroup Wyświetla grupę instrukcji, opcjonalnie rozwinięta lub zwijana, w osobnej sekcji instrukcji.
    InstallAgent InstallAgent Wyświetla link do innych części Azure w celu spełnienia różnych wymagań dotyczących instalacji.
    OAuthForm

    Ten składnik wymaga, aby OAuth2 typ był obecny we auth właściwości szablonu łącznika danych.

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

    Oto kilka przykładów Textbox typu. Te przykłady odpowiadają parametrom używanym w przykładowej auth sekcji w dokumentacji łączników danych dla struktury łączników bez kodu. Dla każdego z 4 typów każdy z nich ma labelwartości , placeholderi 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

    Przykład:

    Zrzut ekranu przedstawiający przycisk kopiowania wartości w polu.

    Przykładowy kod:

    {
        "parameters": {
            "fillWith": [
                "WorkspaceId",
                "PrimaryKey"
                ],
            "label": "Here are some values you'll need to proceed.",
            "value": "Workspace is {0} and PrimaryKey is {1}"
        },
        "type": "CopyableLabel"
    }
    
    Wartość tablicy Wymagany Typ Opis
    fillWith ENUM Tablica zmiennych środowiskowych używanych do wypełniania symbolu zastępczego. Rozdziel wiele symboli zastępczych przecinkami. Przykład: {0},{1}

    Obsługiwane wartości: workspaceId, workspaceName, primaryKey, , MicrosoftAwsAccountsubscriptionId
    Etykiety True Ciąg Definiuje tekst etykiety powyżej pola tekstowego.
    Wartość True Ciąg Definiuje wartość, która ma być obecna w polu tekstowym, obsługuje symbole zastępcze.
    Wierszy Wierszy Definiuje wiersze w obszarze interfejsu użytkownika. Domyślnie ustaw wartość 1.
    wideLabel logiczny Określa szeroką etykietę dla długich ciągów. Domyślnie ustaw wartość .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"
    }
    
    Pole Wymagany Typ Opis
    Etykiety True Ciąg Definiuje tekst etykiety powyżej listy rozwijanej.
    Nazwa True Ciąg Definiuje unikatową nazwę listy rozwijanej. Jest to używane w konfiguracji sondowania.
    Opcje True Tablicy Definiuje listę opcji listy rozwijanej.
    Symbol zastępczy Ciąg Definiuje tekst zastępczy listy rozwijanej.
    isMultiSelect logiczny Określa, czy można wybrać wiele opcji. Domyślnie ustaw wartość .false
    Wymagane logiczny Jeśli truelista rozwijana jest wymagana do wypełnienia.
    defaultAllSelected logiczny Jeśli truewszystkie opcje są domyślnie zaznaczone.
    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"
        ]
      }
    }
    
    
    Pole Wymagany Typ Opis
    Mapowania True Tablicy Definiuje mapowanie kolumn w siatce.
    Menuitems Tablicy Definiuje elementy menu dla siatki.
    KontekstPane
    {
      "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
                  }
                }
              }
            ]
          }
        ]
      }
    }
    
    Pole Wymagany Typ Opis
    Tytuł True Ciąg Tytuł okienka kontekstu.
    Napisów True Ciąg Podtytuł okienka kontekstu.
    contextPaneType True Ciąg Typ okienka kontekstu.
    instructionSteps True Tablicy
    instructionSteps
    Kroki instrukcji dla okienka kontekstu.
    Etykiety Ciąg Etykieta okienka kontekstu.
    isPrimary logiczny Wskazuje, czy jest to podstawowe okienko kontekstu.
    Infomessage

    Oto przykład wbudowanego komunikatu informacyjnego:

    Zrzut ekranu przedstawiający wbudowany komunikat informacyjny.

    Z kolei na poniższej ilustracji przedstawiono komunikat informacyjny, który nie jest wbudowany:

    Zrzut ekranu przedstawiający komunikat informacyjny, który nie jest wbudowany.

    Wartość tablicy Typ Opis
    Tekst Ciąg Zdefiniuj tekst do wyświetlenia w wiadomości.
    Widoczne logiczny Określa, czy komunikat jest wyświetlany.
    Wbudowany logiczny Określa sposób wyświetlania komunikatu informacyjnego.

    - true: (Zalecane) Wyświetla komunikat informacyjny osadzony w instrukcjach.
    - false: dodaje niebieskie tło.
    InstructionStepsGroup

    Oto przykład rozszerzalnej grupy instrukcji:

    Zrzut ekranu przedstawiający rozszerzalną, dodatkową grupę instrukcji.

    Wartość tablicy Wymagany Typ Opis
    Tytuł True Ciąg Definiuje tytuł kroku instrukcji.
    Opis Ciąg Opcjonalny tekst opisowy.
    canCollapseAllSections logiczny Określa, czy sekcja jest składanym akordeonem, czy nie.
    noFxPadding logiczny Jeśli trueprogram zmniejsza dopełnienie wysokości w celu zaoszczędzenia miejsca.
    Rozszerzony logiczny Jeśli truewartość , domyślnie jest wyświetlana jako rozwinięta.

    Aby uzyskać szczegółowy przykład, zobacz kod JSON konfiguracji łącznika DNS systemu Windows.

    InstallAgent

    Niektóre typy InstallAgent są wyświetlane jako przycisk, inne są wyświetlane jako link. Oto przykłady obu tych elementów:

    Zrzut ekranu przedstawiający link dodany jako przycisk.

    Zrzut ekranu przedstawiający link dodany jako tekst wbudowany.

    Wartości tablicy Wymagany Typ Opis
    linkType True ENUM Określa typ łącza jako jedną z następujących wartości:

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall OpenMicrosoftAzureMonitoring
    OpenFrontDoors
    OpenCdnProfile
    AutomaticDeploymentCEF
    OpenAzureInformationProtection
    OpenAzureActivityLog
    OpenIotPricingModel
    OpenPolicyAssignment
    OpenAllAssignmentsBlade
    OpenCreateDataCollectionRule
    policyDefinitionGuid Wartość true w przypadku korzystania z elementu OpenPolicyAssignment linkType. Ciąg W przypadku łączników opartych na zasadach definiuje identyfikator GUID wbudowanej definicji zasad.
    assignMode ENUM W przypadku łączników opartych na zasadach definiuje tryb przypisywania jako jedną z następujących wartości: Initiative, Policy
    dataCollectionRuleType ENUM W przypadku łączników opartych na modelu DCR definiuje typ reguły zbierania danych jako SecurityEvent, lub ForwardEvent.

    Przykładowa definicja łącznika danych

    Poniższy przykład łączy niektóre składniki zdefiniowane w tym artykule jako format treści JSON do użycia z interfejsem API definicji łącznika danych Create or Update.

    Aby uzyskać więcej przykładów connectorUiConfig przeglądu innych łączników danych CCF. Nawet łączniki korzystające ze starszego pliku CCF mają prawidłowe przykłady tworzenia interfejsu użytkownika.

    {
        "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"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }