Import individual assets

POST /project/import/asset_path

Overview

This API imports individual assets within the same project, accounts, pipelines, tasks, and files.

Prerequisites

  • Read access to the source
  • Write access to the target

Request


POST https://{controlplane_path}/api/1/rest/public/project/import/asset_path?{query_parameter}
            

Path parameters

Key Description
controlplane_path Required. The path to the SnapLogic Control Plane: elastic.snaplogic.com
For the UAT or EMEA control plane, substitute the name for elastic. For example:
  • uat.snaplogic.com
  • emea.snaplogic.com
asset_path The path to the target individual asset.

Format: /{env_org}/{project_space}/{project_name}

Query parameters

Key Type Description
duplicate_check string Indicates how to handle duplicates between the source and the destination during import.

Valid values:

  • skip or true

    This parameter first performs a check for the existence of the individual assets with the same name:

    • Any existing assets with the same name are not updated. They appear in the failed section of the response body with a 409 error. Other assets are added.
  • overwrite

    If an asset with the same name exists in the target project and the asset's type is specified in overwrite_types, it is overwritten. Otherwise, it is ignored.

overwrite_types list The types of individual assets that can be overwritten, if an asset with the same name already exists in the destination project.
Valid values:
  • Account
  • File
  • Flows
  • Job (task)
  • Pipeline
Note: Policies are always overwritten.

Request header

Specify Basic for authorization and multipart/form-data for content type.

 Authorization: Basic {your_encoded_security_credentials}
Content-Type: multipart/form-data

Request body

Key Type Description
file string The unmodified zip file of the source individual assets that was exported.
file_account string Optional. The JSON file containing the list of accounts to modify.
To create this file:
  1. Extract the accounts_template.json file from the exported zip file. The JSON includes nodes for each account associated with the individual assets .
  2. Delete the JSON nodes for accounts that you do not want to modify.
  3. Update the values of the value keys for the accounts that you want to modify. Replace any encrypted values (such as the password) with the original plain text value. This is required, even if you are not changing the value itself, because these values are encrypted again during import.
    Important:
    • Do not modify the UUID of the account or the structure of the property_map node. The property_map structure might be different for each account and must be preserved.
    • If this file is not provided, the accounts are not modified.
file_expr string Optional. A zip file containing expression files to add to the root of the project in the new location.

If an expression file with the same name already exists in the target location, it is overwritten.

If this file is not provided, no additional expression files are added to the project.

Important: If the zip file contains folders, the folder structure is flattened. If duplicate filenames exist in different folders of the zip file, only one of those files is copied to the new location.

Example: An expression library file (typically with the .expr extension) might contain:

 {
  prefix:'test';
  prefixer: x => this.prefix + x
}

Response

Response


{
    "response_map": {
        "successful": [
            {
                "snode_id": "65b124ad2c22dd5a9d774dff",
                "name": "Sample Book API-Test-1.0.0.json"
            },
            {
                "snode_id": "65b124daca75d153d3026009",
                "name": "Sample Book API-Test-1.0.0-2024-01-24 14:55:20.json"
            },
            {
                "snode_id": "65b129e90d78973459c47123",
                "name": "Sample Book API-Test-1.2.0.json"
            }
        ],
        "failed": [
            {
                "reason": "HTTP Code: 401 Status: GET https://canary.elastic.snaplogicdev.com/api/1/rest/asset/Automation2/abc/Test//books_pipeline: UNAUTHORIZED Errors: {'http_status_code': 401, 'response_map': {'error_list': [{'message': 'Authentication required.'}]}}. error_response: [{'message': 'Authentication required.'}]",
                "snode_id": "65b124aa411a3e956a84876a",
                "name": "books_pipeline",
                "status_code": 401
            },
            {
                "reason": "HTTP Code: 401 Status: GET https://canary.elastic.snaplogicdev.com/api/1/rest/asset/Automation2/abc/Test//books: UNAUTHORIZED Errors: {'http_status_code': 401, 'response_map': {'error_list': [{'message': 'Authentication required.'}]}}. error_response: [{'message': 'Authentication required.'}]",
                "snode_id": "65b124aa505cc8be84f2707e",
                "name": "books",
                "status_code": 401
            }
        ],
        "warnings": []
    },
    "http_status_code": 200
}
Key Type Description
successful array An array of objects that contain:
  • the node ID
  • the asset or expression file that was successfully imported

For successfully updated accounts, (updated) is added after the label.

failed array An array of objects that contain:
  • the status code
  • the reason for the failure
  • the node ID
  • the asset or expression file that failed to be added or updated
warnings array An array of objects that contain:
  • the warning message
  • the node ID
  • the asset or expression file that generated warnings