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 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 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 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 } } } |
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 |
[] |