Informazioni di riferimento sulle definizioni dei connettori dati per codeless Connector Framework

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.

Screenshot di una pagina del connettore dati di esempio con sezioni etichettate da 1 a 9.

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

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[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({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:
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton Attivare la distribuzione del DCR in base alle informazioni di connessione fornite tramite parametri segnaposto. Sono supportati i parametri seguenti:
  • name :Obbligatorio
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • 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:

    Screenshot di un pulsante copia valore in un campo.

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

    Screenshot di un messaggio informativo inline.

    Al contrario, l'immagine seguente mostra un messaggio informativo non inline:

    Screenshot di 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:

    Screenshot di un gruppo di istruzioni aggiuntivo 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:

    Screenshot di un collegamento aggiunto come pulsante.

    Screenshot di un collegamento aggiunto come testo inline.

    Valori matrice Obbligatorio Tipo Descrizione
    linkType Vero ENUM Determina il tipo di collegamento, come uno dei valori seguenti:

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall 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"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }