/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

export type DescriptionSchema = string;
/**
 * Base destination folder where archive/folder will be inflated
 */
export type TargetPathSchema = string;
/**
 * Specifies final action performed by the application at the end of the staging process
 */
export type ActionSchema = "stay" | "close" | "warm-boot" | "cold-boot" | "clean-boot";
/**
 * The timeout value used when attempting to reach the host server
 */
export type PingTimeoutSchema = number;
/**
 * USB communication function to use
 */
export type USBFunctionSchema = "active-sync-usb" | "active-sync-com" | "usblan" | "mass-storage";
/**
 * "Friendly" name to associate with the network connection
 */
export type ProfileSchema = string;
/**
 * Wireless network ESSID
 */
export type EssidSchema = string;
/**
 * Wireless connection mode
 */
export type ModeSchema = "open" | "wep-40" | "wep-104" | "wpa-psk" | "wpa2-psk" | "wpa-tkip" | "wpa2-aes";
/**
 * Wireless network key for 'wep-40', 'wep-104', 'wpa-psk', and 'wpa2-psk' networks
 */
export type ModeKeySchema = string;
/**
 * Wireless network key index for 'wep-40' and 'wep-104' networks
 */
export type IndexSchema = number;
/**
 * Configures the EAP authentication method
 */
export type EapMethodSchema = "none" | "peap" | "tls" | "ttls" | "fast" | "leap";
/**
 * Username for the EAP method
 */
export type EapUsernameSchema = string;
/**
 * Password for EAP method
 */
export type EapPasswordSchema = string;
/**
 * Indicates the EAP credentials type
 */
export type CredentialsTypeSchema = "password" | "token" | "certificate" | "unknown";
/**
 * Indicates the EAP credentials source
 */
export type CredentialsSourceSchema = "user" | "logon" | "profile" | "auto" | "unknown";
/**
 * Indicates if the server certificate should be validated
 */
export type ValidateServerSchema = boolean;
/**
 * Indicates if only the servers listed in the 'connect-to-server-names' list should be connected to
 */
export type ConnectToServerSchema = boolean;
/**
 * Semi-colon separated list of servers that are valid to connect to during server certificate validation
 */
export type ConnectToServerNamesSchema = string;
/**
 * "Friendly" name of the server digital certificate that should be validated
 */
export type ServerCertNameSchema = string;
/**
 * The outer-identity of the EAP method
 */
export type OuterIdentitySchema = string;
/**
 * Indicate if fast reconnect should be enabled
 */
export type FastReconnectSchema = boolean;
/**
 * Inner EAP authentication method to use
 */
export type InnerMethodSchema = "eap-tls" | "eap-MsChapV2" | "eap-gtc";
/**
 * Indicates if automatic PAC provisioning is used for an EAP-FAST network
 */
export type AutoPacSchema = boolean;
/**
 * Full path to the PAC file for manual PAC provisioning
 */
export type PacFilePathSchema = string;
/**
 * PAC authority identity (AID) information used to select PAC from a list of PACs on the device
 */
export type PacAidInfoSchema = string;
/**
 * Deployment download scheme to use
 */
export type SchemeSchema = "http" | "https";
/**
 * Host name or internet protocol address of the server from which the resource is to be fetched
 */
export type HostSchema = string;
/**
 * TCP/IP port to be used to contact the server
 */
export type PortSchema = number;
/**
 * Path to server resource to download, complete with query string if needed
 */
export type PathSchema = string;
/**
 * Full path to the application to be executed
 */
export type AppNameSchema = string;
/**
 * Command line arguments
 */
export type ArgsSchema = string;
/**
 * Each object in 'cmds' is a shell command to execute in the final phase of staging
 */
export type CmdsSchema = ItemsSchema[];

/**
 * Schema to validate Windows CE JSON files given as input to DL-Config to generate Scan2Deploy barcodes
 */
export interface CEScan2DeploySchema {
  layout?: LayoutSchema;
  global?: GlobalSectionSchema;
  settings?: SettingsSectionSchema;
  network?: NetworkSectionSchema;
  deployment?: DeploymentSectionSchema;
  shell?: ShellSectionSchema;
  [k: string]: unknown;
}
export interface LayoutSchema {
  description?: DescriptionSchema;
  [k: string]: unknown;
}
/**
 * Section used to configure application scoped settings
 */
export interface GlobalSectionSchema {
  "target-path"?: TargetPathSchema;
  action?: ActionSchema;
  "ping-timeout"?: PingTimeoutSchema;
  [k: string]: unknown;
}
/**
 * Section used to configure inner device settings
 */
export interface SettingsSectionSchema {
  "usb-function"?: USBFunctionSchema;
  [k: string]: unknown;
}
/**
 * Section used to configure device Wi-Fi network
 */
export interface NetworkSectionSchema {
  profile?: ProfileSchema;
  essid?: EssidSchema;
  mode?: ModeSchema;
  "mode-key"?: ModeKeySchema;
  index?: IndexSchema;
  "eap-method"?: EapMethodSchema;
  "eap-username"?: EapUsernameSchema;
  "eap-password"?: EapPasswordSchema;
  "credentials-type"?: CredentialsTypeSchema;
  "credentials-source"?: CredentialsSourceSchema;
  "validate-server"?: ValidateServerSchema;
  "connect-to-server"?: ConnectToServerSchema;
  "connect-to-server-names"?: ConnectToServerNamesSchema;
  "server-cert-name"?: ServerCertNameSchema;
  "outer-identity"?: OuterIdentitySchema;
  "fast-reconnect"?: FastReconnectSchema;
  "inner-method"?: InnerMethodSchema;
  "auto-pac"?: AutoPacSchema;
  "pac-file-path"?: PacFilePathSchema;
  "pac-aid-info"?: PacAidInfoSchema;
  [k: string]: unknown;
}
/**
 * Section used to download a ZIP archive from a server and inflate it to the 'target-path' folder
 */
export interface DeploymentSectionSchema {
  scheme?: SchemeSchema;
  host: HostSchema;
  port?: PortSchema;
  path?: PathSchema;
  [k: string]: unknown;
}
/**
 * Section for executable shell commands to be performed in the final staging phase
 */
export interface ShellSectionSchema {
  cmds: CmdsSchema;
  [k: string]: unknown;
}
export interface ItemsSchema {
  "app-name": AppNameSchema;
  args?: ArgsSchema;
  [k: string]: unknown;
}
