GetInstanceName

Given an integration name, returns the instance name.

python · Developer Tools

Source

from typing import Any

import demistomock as demisto
from CommonServerPython import *

from CommonServerUserPython import *


def instance_check(instances, integration_name: str) -> list:
    instance_names = []
    for instance_name, details in instances.items():
        if details.get("brand") == integration_name:
            instance_names.append(instance_name)

    return instance_names


def get_instance_name_command(args: dict[str, Any]) -> CommandResults:
    integration_name = args.get("integration_name", "")

    instances = demisto.getModules()

    instance_names = instance_check(instances, integration_name)

    if not instance_names:
        raise DemistoException(f"No instance for integration {integration_name}.")

    if argToBoolean(args.get("return_all_instances", "false")):
        return CommandResults(
            outputs_prefix="Instances",
            outputs_key_field="",
            outputs=[
                {
                    "integrationName": integration_name,
                    "instanceName": instance_name,
                }
                for instance_name in instance_names
            ],
        )

    return CommandResults(
        outputs_prefix="Instances",
        outputs_key_field="",
        outputs={
            "integrationName": integration_name,
            "instanceName": instance_names[0],
        },
    )


def main():
    try:
        return_results(get_instance_name_command(demisto.args()))
    except Exception as ex:
        return_error(f"Failed to execute Script. Error: {ex!s}")


if __name__ in ("__main__", "__builtin__", "builtins"):
    main()

README

Given an integration name, returns the instance name.

Script Data


Name Description
Script Type python3
Tags basescript
Cortex XSOAR Version 6.0.0

Inputs


Argument Name Description
integration_name Integration name for which to check its instance name.
return_all_instances Whether to return a full list of instance names related to the given integation name.

Outputs


Path Description Type
Instances.integrationName Requested integration name. String
Instances.instanceName Instance name for given integration. String

Script Example

!GetInstanceName integration_name="HelloWorld Feed"

Context Example

{
    "Instances": {
        "instanceName": "HelloWorld Feed_instance_1",
        "integrationName": "HelloWorld Feed"
    }
}

Human Readable Output

Results

instanceName integrationName
HelloWorld Feed_instance_1 HelloWorld Feed