Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per creare un connettore dati con Codeless Connector Framework (CCF), usare questo documento come supplemento alla documentazione di riferimento sull'API REST Microsoft Sentinel per le definizioni del connettore dati. In particolare, questo documento di riferimento si espande nella sezione seguente:
-
connectorUiConfig: definisce gli elementi visivi e il testo visualizzati nella pagina del connettore dati in Microsoft Sentinel.
Per altre informazioni, vedere Creare un connettore senza codice.
Definizioni del connettore dati - Creare o aggiornare
Fare riferimento all'operazione Di creazione o aggiornamento nella documentazione dell'API REST per trovare la versione più recente dell'API stabile o di anteprima. Solo l'operazione update richiede il etag valore .
Metodo PUT
https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/{{dataConnectorDefinitionName}}?api-version={{apiVersion}}
Parametri URI
Per altre informazioni sulla versione più recente dell'API, vedere Definizioni del connettore dati - Creare o aggiornare parametri URI
| Nome | Descrizione |
|---|---|
| dataConnectorDefinitionName | La definizione del connettore dati deve essere un nome univoco ed è uguale al name parametro nel corpo della richiesta. |
| resourceGroupName | Nome del gruppo di risorse, senza distinzione tra maiuscole e minuscole. |
| Subscriptionid | ID della sottoscrizione di destinazione. |
| workspaceName |
Nome dell'area di lavoro, non ID. Modello regex: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$ |
| api-version | Versione dell'API da usare per questa operazione. |
Corpo della richiesta
Il corpo della richiesta per la creazione di una definizione del connettore dati CCF con l'API ha la struttura seguente:
{
"kind": "Customizable",
"properties": {
"connectorUIConfig": {}
}
}
dataConnectorDefinition ha le proprietà seguenti:
| Nome | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Kind | Vero | Stringa |
Customizable per il connettore dati di polling delle API o Static in altro modo |
| Proprietà. connectorUiConfig | Vero | JSON annidato connectorUiConfig |
Proprietà di configurazione dell'interfaccia utente del connettore dati |
Configurare l'interfaccia utente del connettore
Questa sezione descrive le opzioni di configurazione disponibili per personalizzare l'interfaccia utente della pagina del connettore dati.
Lo screenshot seguente mostra una pagina del connettore dati di esempio, evidenziata con numeri che corrispondono a aree rilevanti dell'interfaccia utente.
Ognuno degli elementi seguenti della connectorUiConfig sezione necessaria per configurare l'interfaccia utente corrisponde alla parte CustomizableConnectorUiConfig dell'API.
| Campo | Obbligatorio | Tipo | Descrizione | Screenshot dell'area rilevante # |
|---|---|---|---|---|
| Titolo | True | stringa | Titolo visualizzato nella pagina del connettore dati | 1 |
| id | stringa | Imposta l'ID connettore personalizzato per l'utilizzo interno | ||
| Logo | stringa | Percorso del file di immagine in formato SVG. Se non è configurato alcun valore, viene usato un logo predefinito. | 2 | |
| Editore | True | stringa | Provider del connettore | 3 |
| descriptionMarkdown | Vero | stringa in markdown | Descrizione del connettore con la possibilità di aggiungere il linguaggio markdown per migliorarlo. | 4 |
| sampleQueries | Vero | JSON annidato sampleQueries |
Esegue query sul cliente per comprendere come trovare i dati nel registro eventi. | |
| graphQueries | Vero | JSON annidato graphQueries |
Query che presentano l'inserimento di dati nelle ultime due settimane. Specificare una query per tutti i tipi di dati del connettore dati o una query diversa per ogni tipo di dati. |
5 |
| graphQueriesTableName | Imposta il nome della tabella in cui il connettore inserisce i dati. Questo nome può essere usato in altre query specificando {{graphQueriesTableName}} il segnaposto nei graphQueries valori e lastDataReceivedQuery . |
|||
| Tipi | Vero | JSON annidato Tipi |
Elenco di tutti i tipi di dati per il connettore e query per recuperare l'ora dell'ultimo evento per ogni tipo di dati. | 6 |
| connectivityCriteria | Vero | JSON annidato connectivityCriteria |
Oggetto che definisce come verificare se il connettore è connesso. | 7 |
| Disponibilità | JSON annidato Disponibilità |
Oggetto che definisce lo stato di disponibilità del connettore. | ||
| Autorizzazioni | Vero | JSON annidato Autorizzazioni |
Le informazioni visualizzate nella sezione Prerequisiti dell'interfaccia utente, che elenca le autorizzazioni necessarie per abilitare o disabilitare il connettore. | 8 |
| instructionSteps | Vero | JSON annidato Istruzioni |
Matrice di parti del widget che spiegano come installare il connettore e controlli interattivi visualizzati nella scheda Istruzioni . | 9 |
| isConnectivityCriteriasMatchSome | Booleano | Valore booleano che indica se usare 'OR'(SOME) o 'AND' tra gli elementi ConnectivityCriteria. |
connectivityCriteria
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Tipo | Vero | Stringa | Una delle due opzioni seguenti: HasDataConnectors questo valore è ideale per i connettori dati di polling api, ad esempio CCF. Il connettore viene considerato connesso con almeno una connessione attiva.isConnectedQuery : questo valore è ideale per altri tipi di connettori dati. Il connettore viene considerato connesso quando la query specificata restituisce i dati. |
| Valore | True quando il tipo è isConnectedQuery |
Stringa | Query per determinare se i dati sono ricevuti entro un determinato periodo di tempo. Ad esempio: CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)" |
Tipi
| Valore matrice | Tipo | Descrizione |
|---|---|---|
| Nome | Stringa | Descrizione significativa per ,lastDataReceivedQuery incluso il supporto per la graphQueriesTableName variabile. Esempio: {{graphQueriesTableName}} |
| lastDataReceivedQuery | Stringa | Query KQL che restituisce una riga e indica l'ultima volta che i dati sono stati ricevuti o nessun dato se non sono presenti risultati. Esempio: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
Definisce una query che presenta l'inserimento dei dati nelle ultime due settimane.
Specificare una query per tutti i tipi di dati del connettore dati o una query diversa per ogni tipo di dati.
| Valore matrice | Tipo | Descrizione |
|---|---|---|
| metricName | Stringa | Un nome significativo per il grafo. Esempio: Total data received |
| Leggenda | Stringa | Stringa visualizzata nella legenda a destra del grafico, incluso un riferimento a una variabile. Esempio: {{graphQueriesTableName}} |
| baseQuery | Stringa | Query che filtra gli eventi rilevanti, incluso un riferimento a variabili. Esempio: TableName_CL | where ProviderName == "myprovider" o {{graphQueriesTableName}} |
Disponibilità
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Stato | Numero intero | Stato di disponibilità del connettore. Disponibile = 1 Flag di funzionalità = 2 Presto disponibile = 3 Interno = 4 |
|
| isPreview | Booleano | Valore booleano che indica se il connettore è in modalità di anteprima. |
Autorizzazioni
| Valore matrice | Tipo | Descrizione |
|---|---|---|
| dogana | Stringa | Descrive le autorizzazioni personalizzate necessarie per la connessione dati, nella sintassi seguente: {"name":string,"description":Stringa} Esempio: il valore in dogana viene visualizzato nella sezione Prerequisiti Microsoft Sentinel con un'icona informativa blu. Nell'esempio di GitHub questo valore è correlato alla riga chiave del token personale dell'API GitHub: è necessario accedere al token personale di GitHub... |
| Licenze | ENUM | Definisce le licenze necessarie, come uno dei valori seguenti: ,, , , McasAadP1P2, , Aatp, Mdatp, MtpOffice365OfficeATPOfficeIRMIoT Esempio: il valore delle licenze viene visualizzato in Microsoft Sentinel come: Licenza: Obbligatorio Azure AD Premium P2 |
| resourceProvider | resourceProvider | Descrive tutti i prerequisiti per la risorsa Azure. Esempio: il valore resourceProvider viene visualizzato nella sezione Prerequisiti Microsoft Sentinel come segue: Area di lavoro: è necessaria l'autorizzazione di lettura e scrittura. Chiavi: sono necessarie le autorizzazioni di lettura per le chiavi condivise per l'area di lavoro. |
| Inquilino | matrice di valori ENUM Esempio: "tenant": ["GlobalADmin","SecurityAdmin"] |
Definisce le autorizzazioni necessarie, come uno o più dei valori seguenti: "GlobalAdmin", , "SecurityAdmin", "SecurityReader", "InformationProtection" Esempio: visualizza il valore del tenant in Microsoft Sentinel come: Autorizzazioni tenant: Richiede Global Administrator o Security Administrator nel tenant dell'area di lavoro |
Importante
Microsoft consiglia di usare i ruoli con il minor numero di autorizzazioni. Ciò consente di migliorare la sicurezza per l'organizzazione. Amministratore globale è un ruolo con privilegi elevati che deve essere limitato agli scenari di emergenza quando non è possibile usare un ruolo esistente.
resourceProvider
| valore della matrice secondaria | Tipo | Descrizione |
|---|---|---|
| Provider | ENUM | Descrive il provider di risorse, con uno dei valori seguenti: - Microsoft.OperationalInsights/workspaces - Microsoft.OperationalInsights/solutions- Microsoft.OperationalInsights/workspaces/datasources- microsoft.aadiam/diagnosticSettings- Microsoft.OperationalInsights/workspaces/sharedKeys- Microsoft.Authorization/policyAssignments |
| providerDisplayName | Stringa | Elemento di elenco in Prerequisiti che visualizza un segno di spunta rosso "x" o verde quando le autorizzazioni obbligatorie vengono convalidate nella pagina del connettore. Esempio "Workspace" |
| permissionsDisplayText | Stringa | Visualizzare il testo per le autorizzazioni di lettura, scrittura o lettura e scrittura che devono corrispondere ai valori configurati in requiredPermissions |
| requiredPermissions | {"action":Booleano,"delete":Booleano,"read":Booleano,"write":Booleano} |
Descrive le autorizzazioni minime necessarie per il connettore. |
| Ambito | ENUM | Descrive l'ambito del connettore dati, come uno dei valori seguenti: "Subscription", , "ResourceGroup", "Workspace" |
sampleQueries
| valore matrice | Tipo | Descrizione |
|---|---|---|
| description | Stringa | Descrizione significativa per la query di esempio. Esempio: Top 10 vulnerabilities detected |
| Query | Stringa | Query di esempio usata per recuperare i dati del tipo di dati. Esempio: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10 |
Configurare altre opzioni di collegamento
Per definire un collegamento inline usando markdown, usare l'esempio seguente.
{
"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)"
}
Per definire un collegamento come modello di Resource Manager, usare l'esempio seguente come guida:
{
"title": "Azure Resource Manager (ARM) template",
"description": "1. Click the **Deploy to Azure** button below.\n\n\t[]({URL to custom ARM template})"
}
instructionSteps
Questa sezione fornisce parametri che definiscono il set di istruzioni visualizzate nella pagina del connettore dati in Microsoft Sentinel e ha la struttura seguente:
"instructionSteps": [
{
"title": "",
"description": "",
"instructions": [
{
"type": "",
"parameters": {}
}
],
"innerSteps": {}
}
]
| Array, proprietà | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Titolo | Stringa | Definisce un titolo per le istruzioni. | |
| description | Stringa | Definisce una descrizione significativa per le istruzioni. | |
| innerSteps | Matrice | Definisce una matrice di passaggi di istruzione interna. | |
| Istruzioni | Vero | Matrice di istruzioni | Definisce una matrice di istruzioni di un tipo di parametro specifico. |
Istruzioni
Visualizza un gruppo di istruzioni, con vari parametri e la possibilità di annidare più istruzioniStep in gruppi. I parametri definiti qui corrispondono
| Tipo | Proprietà array | Descrizione |
|---|---|---|
| OAuthForm | OAuthForm | Connettersi con OAuth |
| Textbox | Textbox | Viene associato a ConnectionToggleButton. Sono disponibili 4 tipi:passwordtextnumberemail |
| ConnectionToggleButton | ConnectionToggleButton | Attivare la distribuzione del DCR in base alle informazioni di connessione fornite tramite parametri segnaposto. Sono supportati i parametri seguenti:name :ObbligatoriodisabledisPrimaryconnectLabeldisconnectLabel |
| CopyableLabel | CopyableLabel | Mostra un campo di testo con un pulsante copia alla fine. Quando il pulsante è selezionato, il valore del campo viene copiato. |
| Elenco a discesa | Elenco a discesa | Visualizza un elenco a discesa di opzioni tra cui l'utente può scegliere. |
| Markdown | Markdown | Visualizza una sezione di testo formattata con Markdown. |
| DataConnectorsGrid | DataConnectorsGrid | Visualizza una griglia di connettori dati. |
| ContextPane | ContextPane | Visualizza un riquadro informazioni contestuale. |
| Infomessage | Infomessage | Definisce un messaggio informativo inline. |
| InstructionStepsGroup | InstructionStepsGroup | Visualizza un gruppo di istruzioni, facoltativamente espanse o comprimibili, in una sezione di istruzioni separata. |
| InstallAgent | InstallAgent | Visualizza un collegamento ad altre parti di Azure per soddisfare i vari requisiti di installazione. |
OAuthForm
Questo componente richiede che il OAuth2 tipo sia presente nella auth proprietà del modello di connettore dati.
"instructions": [
{
"type": "OAuthForm",
"parameters": {
"clientIdLabel": "Client ID",
"clientSecretLabel": "Client Secret",
"connectButtonLabel": "Connect",
"disconnectButtonLabel": "Disconnect"
}
}
]
Textbox
Di seguito sono riportati alcuni esempi del Textbox tipo . Questi esempi corrispondono ai parametri usati nella sezione di esempio auth in Informazioni di riferimento sui connettori dati per Codeless Connector Framework. Per ognuno dei 4 tipi, ognuno ha label, placeholdere 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
Esempio:
Codice di esempio:
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Here are some values you'll need to proceed.",
"value": "Workspace is {0} and PrimaryKey is {1}"
},
"type": "CopyableLabel"
}
| Valore matrice | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| fillWith | ENUM | Matrice di variabili di ambiente usate per popolare un segnaposto. Separare più segnaposto con virgole. Ad esempio: {0},{1} Valori supportati: workspaceId, workspaceName, primaryKey, , MicrosoftAwsAccountsubscriptionId |
|
| Etichetta | Vero | Stringa | Definisce il testo per l'etichetta sopra una casella di testo. |
| Valore | Vero | Stringa | Definisce il valore da presentare nella casella di testo e supporta i segnaposto. |
| Righe | Righe | Definisce le righe nell'area dell'interfaccia utente. Per impostazione predefinita, impostare su 1. | |
| wideLabel | Booleano | Determina un'etichetta wide per stringhe lunghe. Per impostazione predefinita, impostare su false. |
Elenco a discesa
{
"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"
}
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Etichetta | Vero | Stringa | Definisce il testo per l'etichetta sopra l'elenco a discesa. |
| Nome | Vero | Stringa | Definisce il nome univoco per l'elenco a discesa. Questo viene usato nella configurazione di polling. |
| Opzioni | Vero | Matrice | Definisce l'elenco di opzioni per l'elenco a discesa. |
| Segnaposto | Stringa | Definisce il testo segnaposto per l'elenco a discesa. | |
| isMultiSelect | Booleano | Determina se è possibile selezionare più opzioni. Per impostazione predefinita, impostare su false. |
|
| Obbligatorio | Booleano | Se true, è necessario compilare l'elenco a discesa. |
|
| defaultAllSelected | Booleano | Se true, tutte le opzioni sono selezionate per impostazione predefinita. |
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"
]
}
}
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Mapping | Vero | Matrice | Definisce il mapping delle colonne nella griglia. |
| Menuitems | Matrice | Definisce le voci di menu per la griglia. |
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
}
}
}
]
}
]
}
}
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Titolo | Vero | Stringa | Titolo per il riquadro di contesto. |
| Sottotitolo | Vero | Stringa | Sottotitolo per il riquadro di contesto. |
| contextPaneType | Vero | Stringa | Tipo del riquadro di contesto. |
| instructionSteps | Vero | Matrice instructionSteps |
Passaggi dell'istruzione per il riquadro di contesto. |
| Etichetta | Stringa | Etichetta per il riquadro di contesto. | |
| isPrimary | Booleano | Indica se si tratta del riquadro del contesto primario. |
Infomessage
Di seguito è riportato un esempio di messaggio informativo inline:
Al contrario, l'immagine seguente mostra un messaggio informativo non inline:
| Valore matrice | Tipo | Descrizione |
|---|---|---|
| testo | Stringa | Definire il testo da visualizzare nel messaggio. |
| Visibile | Booleano | Determina se il messaggio viene visualizzato. |
| Inline | Booleano | Determina la modalità di visualizzazione del messaggio informativo. - true: (Consigliato) Visualizza il messaggio informativo incorporato nelle istruzioni. - false: aggiunge uno sfondo blu. |
InstructionStepsGroup
Ecco un esempio di un gruppo di istruzioni espandibile:
| Valore matrice | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| Titolo | Vero | Stringa | Definisce il titolo per il passaggio dell'istruzione. |
| description | Stringa | Testo descrittivo facoltativo. | |
| canCollapseAllSections | Booleano | Determina se la sezione è o meno una fisarmonica comprimibile. | |
| noFxPadding | Booleano | Se true, riduce la spaziatura interna in altezza per risparmiare spazio. |
|
| Espanso | Booleano | Se true, viene visualizzato come espanso per impostazione predefinita. |
Per un esempio dettagliato, vedere il codice JSON di configurazione per il connettore DNS Windows.
InstallAgent
Alcuni tipi InstallAgent vengono visualizzati come pulsante, altri come collegamento. Di seguito sono riportati alcuni esempi di entrambi:
| Valori matrice | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
| linkType | Vero | ENUM | Determina il tipo di collegamento, come uno dei valori seguenti: InstallAgentOnWindowsVirtualMachineInstallAgentOnWindowsNonAzureInstallAgentOnLinuxVirtualMachineInstallAgentOnLinuxNonAzureOpenSyslogSettingsOpenCustomLogsSettingsOpenWafOpenAzureFirewall
OpenMicrosoftAzureMonitoring
OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
| policyDefinitionGuid | True quando si usa OpenPolicyAssignment linkType. |
Stringa | Per i connettori basati su criteri, definisce il GUID della definizione dei criteri incorporata. |
| assignMode | ENUM | Per i connettori basati su criteri, definisce la modalità di assegnazione, come uno dei valori seguenti: Initiative, Policy |
|
| dataCollectionRuleType | ENUM | Per i connettori basati su DCR, definisce il tipo di regola di raccolta dati come SecurityEvent, o ForwardEvent. |
Definizione del connettore dati di esempio
L'esempio seguente riunisce alcuni dei componenti definiti in questo articolo come formato del corpo JSON da usare con l'API di definizione del connettore dati Di creazione o aggiornamento.
Per altri esempi di connectorUiConfigaltri connettori dati CCF, vedere . Anche i connettori che usano il CCF legacy hanno esempi validi della creazione dell'interfaccia utente.
{
"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"
}
}
]
}
]
}
}
}