U-Series Appliance Web Services

This portion of the guide details the U-Series Appliance web services (also referred to as endpoints). There are two endpoints in the U-Series Appliance: one to run the configuration, and one to monitor progress.

POST

/ApplianceGateway/api/BaseProductLicense/setwindowslicense

Endpoint to set Windows license.

POST

/ApplianceGateway/api/BaseProductLicense/skippage

Endpoint to skip Windows license page.

POST

/ApplianceGateway/api/DeploymentWizardAutomation

Endpoint to programmatically execute the deployment wizard.

GET

/ApplianceGateway/api/DeploymentWizardAutomation

Endpoint to get the status of the deployment wizard step execution. This is intended to be used after the Post in this controller has been called, to be able to poll the status as the steps are executed.

Status Code Description
0 Not Started
1 In Progress
2 Passed
3 Paused
4 Failed

Sample Response Format

{
    "stepsStatus": [
        {
            "name": "Rename appliance",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Appliance renamed to automation"
            }
        },
        {
            "name": "Reboot appliance",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Reboot requested"
            }
        },
        {
            "name": "Pause the wizard while waiting for a reboot",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Pausing for reboot"
            }
        },
        {
            "name": "Create BeyondInsight EMS certificate",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Created the BeyondInsight EMS certificate"
            }
        },
        {
            "name": "Apply internet connection settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Internet connection settings applied"
            }
        },
        {
            "name": "Apply IP settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "IP settings applied"
            }
        },
        {
            "name": "Generate unique BeyondInsight cryptokey",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Generated unique BeyondInsight cryptokey"
            }
        },
        {
            "name": "Apply time settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Applied time settings"
            }
        }
    ],
    "overAllStatus": 2
}

POST

/ApplianceGateway/api/ConfigurationWizardAutomation

Endpoint to programmatically execute the configuration wizard.

GET

/ApplianceGateway/api/ConfigurationWizardAutomation

Endpoint to get the status of the configuration wizard step execution. This is intended to be used after the Post in this controller has been called, to be able to poll the status as the steps are executed.

Status Code Description
0 Not Started
1 In Progress
2 Passed
3 Paused
4 Failed

Sample Response Format

{
    "stepsStatus": [
        {
            "name": "Apply License Settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "License settings applied"
            }
        },
        {
            "name": "Prepare local BeyondInsight Database",
            "outcomeInfo": {
                "stepStatus": 3,
                "stepOutcomeMessage": "Error encountered while preparing local BeyondInsight database ()"
            }
        },
        {
            "name": "Apply Backup Settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Backup settings applied"
            }
        },
        {
            "name": "Apply BeyondInsight Credentials",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "BeyondInsight Credentials applied"
            }
        },
        {
            "name": "Apply Central Policy password",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Central Policy password applied"
            }
        },
        {
            "name": "Apply Updater Credentials",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Updater Credentials applied"
            }
        },
        {
            "name": "Apply Updater Settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "Updater settings applied"
            }
        },
        {
            "name": "Apply PowerBroker for Windows",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "PowerBroker for Windows applied"
            }
        },
        {
            "name": "Apply SSL Certificate Settings",
            "outcomeInfo": {
                "stepStatus": 2,
                "stepOutcomeMessage": "SSL certificate applied"
            }
        },
        {
            "name": "Apply Roles",
            "outcomeInfo": {
                "stepStatus": 1,
                "stepOutcomeMessage": ""
            }
        }
    ],
    "overAllStatus": 1
}

GET

/UVMInterface/api/UVMConfiguration/IsApplianceConfigured

Endpoint to get the status of the appliance configuration.

Status Code Description
0 Not Configured
1 Configured

Once complete, the configuration and deployment end points will be removed, and if the deployment or configuration is called, a 502 will be returned by the gateway.

GET

/ApplianceGateway/api/ApplianceInfoAutomation

Endpoint to get the network details.

Sample Response Format

{
    "ipSettings": [
        {
            "networkAdapter": " networkAdapter ",
            "networkCardId": "0",
            "useDhcp": true,
            "macAddress": null,
            "domainIp": "XX.XXX.XX.XXX",
            "subnetMask": "XXX.XXX.XXX.X",
            "defaultGateway": "XX.XXX.XX.X",
            "preferredDnsServer": "XX.XXX.X.XX",
            "alternateDnsServer": "XX.XXX.X.XX",
            "dnsSuffix": " dnsSuffix ",
            "modifiedSetting": false
        }
    ]
}

Prerequisite Before Deployment

Run Set Windows license or Skip License Page endpoint as Windows is not licensed.

Set Windows License

Route

/ApplianceGateway/api/BaseProductLicense/setwindowslicense

Windows key JSON will be sent to the web service.

Sample JSON format

{
    "key": "XXXXX- XXXXX - XXXXX - XXXXX - XXXXX "
}

Skip Windows License Page

Route

/ApplianceGateway/api/BaseProductLicense/skippage

Empty JSON will be sent to the web service.

Deployment Wizard

Route

/ApplianceGateway/api/DeploymentWizardAutomation

A valid BeyondInsight license key must be passed through a HTTP header

The Deployment JSON will be sent to the web service and will include:

  • Windows User credentials
  • Licensing Agreements
  • Appliance Name
  • IP Settings
  • Internet Connection Settings
  • Time zone and Time Settings
  • SMTP Settings

Sample JSON Format

{
  "configureUser": {
    "username": "btadmin",
    "password": "password",
    "email": "dummy@domain.com"
  },
  "licenseAgreement": {
    "acceptBtEula": true,
    "acceptMsEula": true,
    "acceptSqlServerEula": true
  },
  "applianceName": {
    "applianceName": "applianceName"
  },
  "ipSettings": [
    {
      "networkAdapter": "networkAdapter",
      "networkCardId": "",
      "useDhcp": true,
      "macAddress": "",
      "domainIp": "XX.XXX.XX.XXX",
      "subnetMask": "XXX.XXX.XXX.X",
      "defaultGateway": "XX.XXX.XX.X",
      "preferredDnsServer": "XX.XXX.X.XX",
      "alternateDnsServer": "XX.XXX.X.XX",
      "dnsSuffix": "dnsSuffix",
      "modifiedSetting": false
    }
  ],
  "internetConnectionSettings": {
    "connectThroughProxy": true,
    "proxySetting": {
      "proxyAddress": "XX.XXX.XX.XXX",
      "proxyPort": 808,
      "proxyUsername": "",
      "proxyPassword": ""
    }
  },
  "timeSettings": {
    "syncType": 0,
    "ntpServer": "ntpServer",
    "timezone": "Central Standard Time"
  },
  "smtpSettingsDto": {
    "emailServer": "emailServer",
    "smtpPort": 25,
    "ssl": true,
    "requiresAuthentication": false,
    "username": "username",
    "password": "password"
  }
}

Configuration Wizard

Route

/ApplianceGateway/api/ConfigurationWizardAutomation

A valid BeyondInsight license key must be passed through a HTTP header.

The Configuration JSON will be sent to the web service and will include:

  • BeyondTrust Licenses
  • Solution & Roles
  • User Credentials
  • Roles Configuration
  • Backup And Restore
  • Update Method

Sample JSON Format

{
  "license": {
    "licenseMode": 0,
    "serialNumber": "",
    "licenseKey": ""
  },
  "rolesSelected": {
    "sqlServerRole": true,
    "analysisServerRole": true,
    "sqlServerReportingServicesRole": true,
    "beyondInsightDatabaseAccess": true,
    "beyondInsightManagementConsole": true,
    "omniworkerRole": true,
    "eventCollectorRole": true,
    "passwordSafeConsoleRole": true,
    "biulSetupRole": false,
    "discoveryScannerRole": true
  },
  "credentials": {
    "biUserName": "btadmin",
    "biUserPassword": "password",
    "cpPassword": "password",
    "btUpdaterName": "btadmin",
    "btUpdaterPassword": "password",
    "biulUsername": "btadmin",
    "biulPassword": "password"
  },
  "roleConfigurationBiul": {
    "biulIsRemote": true,
    "biulServerName": "XX.XXX.XXX.XX",
    "biulSqlUser": "username",
    "biulSqlPassword": "password",
    "biulDatabaseName": "PBSMC",
    "biulPort": 0,
    "biulDbInstance": "InstanceName"
  },
  "roleConfigurationRemoteSql": {
    "biIncomingDatabasePassword": "password",
    "allowIncomingDatabaseConnections": false
  },
  "roleConfigurationSqlAccess": {
    "biConnectionServerName": "ServerName",
    "biConnectionDatabaseName": "RetinaCsDatabase",
    "biCommandTimeout": 300,
    "biConnectionTimeout": 60,
    "biDatabaseConnectionStringUsername": "beyondtrust_user",
    "biDatabaseConnectionStringUserPassword": "password",
    "biDatabaseConnectionStringMultiSubnetFailover": false,
    "biCreateRemoteDatabase": false,
    "biDatabaseIsLocal": true,
    "biAdministratorUsername": "btadmin",
    "biAdministratorPassword": "password"
  },
  "backupRestore": {
    "backupOption": 1,
    "backupSetting": {
      "path": "path",
      "username": "",
      "password": "",
      "domain": "",
      "startTime": "2021-07-19T18:55:51.522Z",
      "frequency": 0,
      "backupPassword": "password"
    }
  },
  "updates": {
    "updatesOption": 0,
    "serverAddress": "ServerAddress"
  }
}