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 applications for which the customer has valid subscriptions. You can see the applications and subscriptions 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 |
Yes |
{
"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 the installer entity. Installer: 1. drops one or more components on the target device(s) 2. activates one or more products on the target device(s) 3. enrolls the target device into device management under some security group.",
"activatedProducts": [
{
"$ref": "v1ActivatedProduct",
"description": "Describes product activated (enabled) after installation.",
"poolUuid": {
"type": "string",
"description": "Reference to [unit pool]. 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 the system at subscription creation, cannot be updated."
}
}
],
"createTime": {
"type": "string",
"description": "When the installer was created. Info: For details, see GitHub: 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 a member of. If not specified: 1. If the device name matches an existing device, the device is enrolled in the group of the matching device. 2. If the device name does not match any existing device, the 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": "The installer can be downloaded at this URL.",
"readOnly": true
},
"enableCloudScannerFeedback": {
"type": "boolean",
"description": "If true, the installed endpoint product will use ESET cloud scanning."
},
"enablePuaDetection": {
"type": "boolean",
"description": "If true, the detection of potentially unwanted applications will be enabled in the installed endpoint product."
},
"expireTime": {
"type": "string",
"description": "Installers are created with automatically determined lifespan. After expire_time, they become unusable. Info: For details, see GitHub: 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 the governed resource. Can be seen as a value of item in enumerated type. It can be derived from the 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 an 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 the preferred GUI language in BCP-47 format. A default 'en-us' is used if the preferred language is not available."
},
"sendAnonymousDiagnosticData": {
"type": "boolean",
"description": "If true, the 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, the installer cannot be used for various reasons (for example, 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 the 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+Headers instead of an Example or vice-versa
Code |
Description and Example |
Description, Schema and Headers |
|---|---|---|
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"
}
}
|
Successful response.
{
"$ref": "v1CreateInstallerResponse",
"installer": {
"$ref": "v1Installer",
"description": "Describes the installer entity. Installer: 1. drops one or more components on the target device(s) 2. activates one or more products on the target device(s) 3. enrolls the target device into device management under some security group.",
"activatedProducts": [
{
"$ref": "v1ActivatedProduct",
"description": "Describes product activated (enabled) after installation.",
"poolUuid": {
"type": "string",
"description": "Reference to [unit pool]. 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 the system at subscription creation, cannot be updated."
}
}
],
"createTime": {
"type": "string",
"description": "When the installer was created. Info: For details, see GitHub: 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 a member of. If not specified: 1. If the device name matches an existing device, the device is enrolled in the group of the matching device. 2. If the device name does not match any existing device, the 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": "The installer can be downloaded at this URL.",
"readOnly": true
},
"enableCloudScannerFeedback": {
"type": "boolean",
"description": "If true, the installed endpoint product will use ESET cloud scanning."
},
"enablePuaDetection": {
"type": "boolean",
"description": "If true, the detection of potentially unwanted applications will be enabled in the installed endpoint product."
},
"expireTime": {
"type": "string",
"description": "Installers are created with automatically determined lifespan. After expire_time, they become unusable. Info: For details, see GitHub: 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 the governed resource. Can be seen as a value of item in enumerated type. It can be derived from the 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 an 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 the preferred GUI language in BCP-47 format. A default 'en-us' is used if the preferred language is not available."
},
"sendAnonymousDiagnosticData": {
"type": "boolean",
"description": "If true, the 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, the installer cannot be used for various reasons (for example, 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 the 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
}
}
}
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
202 |
Response took too long; request cached. Response can be retrieved later using the response-id header. |
Response took too long; request cached. Response can be retrieved later using the response-id header.
[]
{
"response-id": {
"description": "Unique ID of a pending request. Used to retrieve cached result.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
},
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
400 |
One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided. |
One of the errors: 1. Bad or missing authorization. 2. Validation error. Invalid argument provided.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
401 |
Token has expired or is invalid. |
Token has expired or is invalid.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
403 |
Access denied. Check permissions. |
Access denied. Check permissions.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
404 |
Requested resource not found. |
Requested resource not found.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
429 |
Rate limit reached. Try again later. |
Rate limit reached. Try again later.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
500 |
Internal server failure. Try again later. |
Internal server failure. Try again later.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
502 |
Internal server failure. Try again later. |
Internal server failure. Try again later.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
503 |
Environment under maintenance. Try again later. |
Environment under maintenance. Try again later.
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|
504 |
Action took too long; timeout reached |
Action took too long; timeout reached
[]
{
"request-id": {
"description": "Unique ID of the request. Include in support requests.",
"style": "simple",
"explode": false,
"schema": {
"type": "string",
"format": "uuid"
}
}
}
|