ESET Online Help

Search
Select the category
Select the topic

POST Create installer

Relative path: /v1/installers

Create [installer].

Restrictions

  • Currently, you cannot generate a Linux installer via API; only Windows and macOS installers creation via API is supported.
  • You cannot specify the desired components for the installer in the API request. The generated installer contains all the products for which the customer has valid licenses. You can see the products and licenses included in the response.
  • When the installer is generated, the response returns the link to download the installer. The default expiration time of the download link and the installer is six months from the moment of creation. For example, if you download the installer two months after its creation, it will be valid for the remaining four months. You cannot modify the expiration date.
  • Installers created via API are not visible in the ESET PROTECT Web Console.

Request body

Display Schema instead of an Example or vice-versa

Type

Required

Example

Schema

application/json

No

{
  "installer": {
    "activatedProducts": [
      {
        "poolUuid": "string",
        "poolDisplayName": "string",
        "productId": 0,
        "productDisplayName": "string",
        "subscriptionUuid": "string",
        "subscriptionSupportCode": "string"
      }
    ],
    "createTime": "string",
    "deviceEnrollment": {
      "groupDisplayName": "string",
      "securityGroupUuid": "string"
    },
    "displayName": "string",
    "downloadUrl": "string",
    "enableCloudScannerFeedback": true,
    "enablePuaDetection": true,
    "expireTime": "string",
    "installedComponents": [
      {
        "displayName": "string",
        "id": 0,
        "name": "string"
      }
    ],
    "operatingSystemFamilyId": 0,
    "preferredLanguageCode": "string",
    "sendAnonymousDiagnosticData": true,
    "usable": true,
    "uuid": "string"
  }
}
{
  "$ref": "v1CreateInstallerRequest",
  "installer": {
    "$ref": "v1Installer",
    "description": "Describes installer entity. Installer: 1. drops one or more components on target device(s) 2. activates one or more products on target device(s) 3. enrolls target device into device management under some security group.",
    "activatedProducts": [
      {
        "$ref": "v1ActivatedProduct",
        "description": "Describes product activated (enabled) after installation.",
        "poolUuid": {
          "type": "string",
          "description": "[Unit pool] reference. type: unit_management.v1.UnitPool"
        },
        "poolDisplayName": {
          "type": "string",
          "description": "Human readable name of [unit pool]."
        },
        "productId": {
          "type": "integer",
          "description": "Reference to [activated product]. type: product_catalog.v1.Product",
          "format": "int64"
        },
        "productDisplayName": {
          "type": "string",
          "description": "Display name of [activated product]."
        },
        "subscriptionUuid": {
          "type": "string",
          "description": "Reference to a [subscription] from where the units will be used. type: subscription_management.v1.Subscription"
        },
        "subscriptionSupportCode": {
          "type": "string",
          "description": "User-friendly code used in support-related situations. Generated by system at subscription creation, cannot be updated."
        }
      }
    ],
    "createTime": {
      "type": "string",
      "description": "When installer was created. Info: For details see https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/timestamp.proto.",
      "format": "date-time",
      "readOnly": true
    },
    "deviceEnrollment": {
      "$ref": "v1DeviceEnrollmentSettings",
      "description": "Describes how device enrolls into device management after installation.",
      "groupDisplayName": {
        "type": "string",
        "description": "Display name of the future parent device group.",
        "readOnly": true
      },
      "securityGroupUuid": {
        "type": "string",
        "description": "Security group to become member of. If not specified: 1. If device name matches an existing device - device is enrolled in the group of the matching device. 2. If device name doesn't match any existing device - device is enrolled in the Lost & found group. type: asset_management.v1.Group"
      }
    },
    "displayName": {
      "type": "string",
      "description": "Human readable name of the installer."
    },
    "downloadUrl": {
      "type": "string",
      "description": "Installer can be downloaded at this URL.",
      "readOnly": true
    },
    "enableCloudScannerFeedback": {
      "type": "boolean",
      "description": "If true, installed endpoint product will use ESET cloud scanning."
    },
    "enablePuaDetection": {
      "type": "boolean",
      "description": "If true, detection of potentially unwanted applications will be enabled in installed endpoint product."
    },
    "expireTime": {
      "type": "string",
      "description": "Installers are created with automatically determined life-span. After expire_time they become unusable. Info: For details see https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/timestamp.proto.",
      "format": "date-time",
      "readOnly": true
    },
    "installedComponents": [
      {
        "$ref": "v1PlatformComponent",
        "displayName": {
          "type": "string",
          "description": "Human readable name of the component. Derived from package display_name.",
          "readOnly": true
        },
        "id": {
          "type": "integer",
          "description": "Identifier of governed resource. Can be seen as a value of item in enumerated type. It can be derived from name by some algorithm such as CRC32.",
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "Name of the governed item. Can be seen as a name of enumeration item, with id being its numerical value. Note: Not to be confused with display_name, which is purposed for UI."
        }
      }
    ],
    "operatingSystemFamilyId": {
      "type": "integer",
      "description": "Which operating system family the installer supports. Currently, only 1 - Windows and 3 - MacOS are supported. 0 = Unspecified 1 = Windows 2 = Linux 3 = Mac OS type: os_catalog.v2.OsFamily",
      "format": "int64"
    },
    "preferredLanguageCode": {
      "type": "string",
      "description": "Code of preferred GUI language in BCP-47 format. A default 'en-us' is used if preferred language is not available."
    },
    "sendAnonymousDiagnosticData": {
      "type": "boolean",
      "description": "If true, installed endpoint product will take part in improvement program by sending anonymous diagnostic data, such as crash reports and crash dumps."
    },
    "usable": {
      "type": "boolean",
      "description": "If true, the installer can be used. If false, installer cannot be used from various reasons (e.g. expiration).",
      "readOnly": true
    },
    "uuid": {
      "type": "string",
      "description": "Unique identifier of the entity. Must be collision free - two identifiers created anywhere in the world must not collide within entity parent scope. Unless a member of aggregate, the entity scope is always global. Although most of the times compliant with RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace, do not rely on it being a RFC UUID. Treat it as an opaque identifier. RFC UUID can be recognized by being formatted according to template xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, as explained on wikipedia. UUID is used for referencing an entity, even across domains. Example: '123e4567-e89b-12d3-a456-426614174000'",
      "readOnly": true
    }
  }
}


Responses

Display Schema instead of an Example or vice-versa

Code

Description

Example

Schema

200

Successful response.

{
  "installer": {
    "activatedProducts": [
      {
        "poolUuid": "string",
        "poolDisplayName": "string",
        "productId": 0,
        "productDisplayName": "string",
        "subscriptionUuid": "string",
        "subscriptionSupportCode": "string"
      }
    ],
    "createTime": "string",
    "deviceEnrollment": {
      "groupDisplayName": "string",
      "securityGroupUuid": "string"
    },
    "displayName": "string",
    "downloadUrl": "string",
    "enableCloudScannerFeedback": true,
    "enablePuaDetection": true,
    "expireTime": "string",
    "installedComponents": [
      {
        "displayName": "string",
        "id": 0,
        "name": "string"
      }
    ],
    "operatingSystemFamilyId": 0,
    "preferredLanguageCode": "string",
    "sendAnonymousDiagnosticData": true,
    "usable": true,
    "uuid": "string"
  }
}
{
  "$ref": "v1CreateInstallerResponse",
  "installer": {
    "$ref": "v1Installer",
    "description": "Describes installer entity. Installer: 1. drops one or more components on target device(s) 2. activates one or more products on target device(s) 3. enrolls target device into device management under some security group.",
    "activatedProducts": [
      {
        "$ref": "v1ActivatedProduct",
        "description": "Describes product activated (enabled) after installation.",
        "poolUuid": {
          "type": "string",
          "description": "[Unit pool] reference. type: unit_management.v1.UnitPool"
        },
        "poolDisplayName": {
          "type": "string",
          "description": "Human readable name of [unit pool]."
        },
        "productId": {
          "type": "integer",
          "description": "Reference to [activated product]. type: product_catalog.v1.Product",
          "format": "int64"
        },
        "productDisplayName": {
          "type": "string",
          "description": "Display name of [activated product]."
        },
        "subscriptionUuid": {
          "type": "string",
          "description": "Reference to a [subscription] from where the units will be used. type: subscription_management.v1.Subscription"
        },
        "subscriptionSupportCode": {
          "type": "string",
          "description": "User-friendly code used in support-related situations. Generated by system at subscription creation, cannot be updated."
        }
      }
    ],
    "createTime": {
      "type": "string",
      "description": "When installer was created. Info: For details see https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/timestamp.proto.",
      "format": "date-time",
      "readOnly": true
    },
    "deviceEnrollment": {
      "$ref": "v1DeviceEnrollmentSettings",
      "description": "Describes how device enrolls into device management after installation.",
      "groupDisplayName": {
        "type": "string",
        "description": "Display name of the future parent device group.",
        "readOnly": true
      },
      "securityGroupUuid": {
        "type": "string",
        "description": "Security group to become member of. If not specified: 1. If device name matches an existing device - device is enrolled in the group of the matching device. 2. If device name doesn't match any existing device - device is enrolled in the Lost & found group. type: asset_management.v1.Group"
      }
    },
    "displayName": {
      "type": "string",
      "description": "Human readable name of the installer."
    },
    "downloadUrl": {
      "type": "string",
      "description": "Installer can be downloaded at this URL.",
      "readOnly": true
    },
    "enableCloudScannerFeedback": {
      "type": "boolean",
      "description": "If true, installed endpoint product will use ESET cloud scanning."
    },
    "enablePuaDetection": {
      "type": "boolean",
      "description": "If true, detection of potentially unwanted applications will be enabled in installed endpoint product."
    },
    "expireTime": {
      "type": "string",
      "description": "Installers are created with automatically determined life-span. After expire_time they become unusable. Info: For details see https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/timestamp.proto.",
      "format": "date-time",
      "readOnly": true
    },
    "installedComponents": [
      {
        "$ref": "v1PlatformComponent",
        "displayName": {
          "type": "string",
          "description": "Human readable name of the component. Derived from package display_name.",
          "readOnly": true
        },
        "id": {
          "type": "integer",
          "description": "Identifier of governed resource. Can be seen as a value of item in enumerated type. It can be derived from name by some algorithm such as CRC32.",
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "Name of the governed item. Can be seen as a name of enumeration item, with id being its numerical value. Note: Not to be confused with display_name, which is purposed for UI."
        }
      }
    ],
    "operatingSystemFamilyId": {
      "type": "integer",
      "description": "Which operating system family the installer supports. Currently, only 1 - Windows and 3 - MacOS are supported. 0 = Unspecified 1 = Windows 2 = Linux 3 = Mac OS type: os_catalog.v2.OsFamily",
      "format": "int64"
    },
    "preferredLanguageCode": {
      "type": "string",
      "description": "Code of preferred GUI language in BCP-47 format. A default 'en-us' is used if preferred language is not available."
    },
    "sendAnonymousDiagnosticData": {
      "type": "boolean",
      "description": "If true, installed endpoint product will take part in improvement program by sending anonymous diagnostic data, such as crash reports and crash dumps."
    },
    "usable": {
      "type": "boolean",
      "description": "If true, the installer can be used. If false, installer cannot be used from various reasons (e.g. expiration).",
      "readOnly": true
    },
    "uuid": {
      "type": "string",
      "description": "Unique identifier of the entity. Must be collision free - two identifiers created anywhere in the world must not collide within entity parent scope. Unless a member of aggregate, the entity scope is always global. Although most of the times compliant with RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace, do not rely on it being a RFC UUID. Treat it as an opaque identifier. RFC UUID can be recognized by being formatted according to template xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, as explained on wikipedia. UUID is used for referencing an entity, even across domains. Example: '123e4567-e89b-12d3-a456-426614174000'",
      "readOnly": true
    }
  }
}

202

Response took too long; request cached. Response can be retrieved later using the response-id header.

null
[]

400

One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.

null
[]

401

Token has expired or is invalid.

null
[]

403

Access denied. Check permissions.

null
[]

404

Requested resource not found.

null
[]

429

Rate limit reached. Try again later.

null
[]

500

Internal server failure. Try again later.

null
[]

502

Internal server failure. Try again later.

null
[]

503

Environment under maintenance. Try again later.

null
[]

504

Action took too long; timeout reached

null
[]