CodeEngine Routes

auth = dmda.DomoTokenAuth(
    domo_instance=os.environ["DOMO_INSTANCE"],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)
auth
DomoTokenAuth(domo_instance='domo-community', token_name=None, is_valid_token=None, url_manual_login='https://domo-community.domo.com/auth/index?domoManualLogin=true')

source

get_packages

 get_packages (auth:domolibrary.client.DomoAuth.DomoAuth,
               debug_api:bool=False, debug_num_stacks_to_drop=1,
               session:httpx.AsyncClient=None, parent_class:str=None)
Exported source
class CodeEngine_API_Error(de.DomoError):
    def __init__(self, res : rgd.ResponseGetData ):
        super().__init__(res = res)

@gd.route_function
async def get_packages(
    auth: dmda.DomoAuth,
    debug_api: bool = False,
    debug_num_stacks_to_drop=1,
    session: httpx.AsyncClient = None,
    parent_class: str = None,
):
    url = f"http://{auth.domo_instance}.domo.com/api/codeengine/v2/packages"

    res = await gd.get_data(
        url=url,
        auth=auth,
        method="get",
        debug_api=debug_api,
        num_stacks_to_drop=debug_num_stacks_to_drop,
        session=session,
        parent_class=parent_class,
        is_follow_redirects=True
    )

    if not res.is_success:
        raise CodeEngine_API_Error(res = res)

    return res

source

CodeEngine_API_Error

 CodeEngine_API_Error
                       (res:domolibrary.client.ResponseGetData.ResponseGet
                       Data)

base exception

packages = (await get_packages(auth=auth, debug_api= False)).response

packages[0:1]
[{'id': 'fd94540a-8c94-4d8c-af0f-8b149138add0',
  'name': 'DOMO DataFlows',
  'description': 'Run and retrieve information for a Domo DataFlow',
  'language': 'JAVASCRIPT',
  'environment': 'LAMBDA',
  'availability': 'GLOBAL',
  'thumbnail': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAMAAAC3Ycb+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAA4IGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU0OTExLCAyMDEzLzEwLzI5LTExOjQ3OjE2ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMTItMTFUMTU6MzM6MzAtMDc6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNS0wMi0wOVQxMjowMzo0OC0wNzowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMDItMDlUMTI6MDM6NDgtMDc6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjI8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NWNkMGUyYzQtMzc1OC00NDZmLWFmNzktN2YxZWE1NDNhNzc5PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjVjZDBlMmM0LTM3NTgtNDQ2Zi1hZjc5LTdmMWVhNTQzYTc3OTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjVjZDBlMmM0LTM3NTgtNDQ2Zi1hZjc5LTdmMWVhNTQzYTc3OTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1Y2QwZTJjNC0zNzU4LTQ0NmYtYWY3OS03ZjFlYTU0M2E3Nzk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMTItMTFUMTU6MzM6MzAtMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj45NjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjk2MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg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',
  'owner': '27',
  'versions': [{'version': '2.0.9',
    'description': '',
    'createdBy': '1658438246',
    'released': '2024-08-05T14:21:03.410Z',
    'functions': [],
    'configuration': {'accountsMapping': [],
     'mlModel': [],
     'externalPackageMapping': {}}}],
  'users': [],
  'createdOn': '2023-03-28T23:51:36.539Z',
  'updatedOn': '2024-08-05T15:19:14.351Z',
  'packageSource': 'DOMO'}]

source

CodeEngine_Package_Parts

 CodeEngine_Package_Parts (value, names=None, module=None, qualname=None,
                           type=None, start=1)

An enumeration.

Exported source
class CodeEngine_Package_Parts(Enum):
    VERSIONS = auto()
    FUNCTIONS = auto()
    CODE = auto()
package = (await get_codeengine_package_by_id(
    package_id="0b628c44-0a1a-4e76-83ae-681cde27b129", auth=auth, debug_api=False
)).response 

package
{'id': '0b628c44-0a1a-4e76-83ae-681cde27b129',
 'name': 'DOMO Users',
 'description': 'Retrieve or update information for a Domo user.',
 'language': 'JAVASCRIPT',
 'environment': 'LAMBDA',
 'availability': 'GLOBAL',
 'thumbnail': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAMAAAC3Ycb+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAA4IGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU0OTExLCAyMDEzLzEwLzI5LTExOjQ3OjE2ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMTItMTFUMTU6MzM6MzAtMDc6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNS0wMi0wOVQxMjowMzo0OC0wNzowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMDItMDlUMTI6MDM6NDgtMDc6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjI8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NWNkMGUyYzQtMzc1OC00NDZmLWFmNzktN2YxZWE1NDNhNzc5PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjVjZDBlMmM0LTM3NTgtNDQ2Zi1hZjc5LTdmMWVhNTQzYTc3OTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjVjZDBlMmM0LTM3NTgtNDQ2Zi1hZjc5LTdmMWVhNTQzYTc3OTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1Y2QwZTJjNC0zNzU4LTQ0NmYtYWY3OS03ZjFlYTU0M2E3Nzk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMTItMTFUMTU6MzM6MzAtMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj45NjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjk2MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg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',
 'owner': '27',
 'versions': [{'version': '1.0.0',
   'description': 'Retrieve information about a Domo User.',
   'createdBy': '-1',
   'released': '2023-03-30T20:43:37.211Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '1.1.0',
   'description': '',
   'createdBy': '-1',
   'released': '2023-06-22T19:34:02.290Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '1.1.1',
   'description': '',
   'createdBy': '1926758222',
   'released': '2023-08-17T17:22:18.295Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '2.0.1',
   'description': '',
   'createdBy': '1437951404',
   'released': '2023-11-17T18:11:58.930Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '2.0.2',
   'description': '',
   'createdBy': '1926758222',
   'released': '2024-01-05T23:15:34.145Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '2.0.3',
   'description': '',
   'createdBy': '1658438246',
   'released': '2024-02-21T16:32:05.245Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '2.0.4',
   'description': '',
   'createdBy': '17328249',
   'released': '2024-02-23T00:14:57.117Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '2.0.5',
   'description': '',
   'createdBy': '1658438246',
   'released': '2024-03-15T16:39:52.608Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}},
  {'version': '3.0.0',
   'description': '',
   'createdBy': '1658438246',
   'released': '2024-05-09T21:16:42.877Z',
   'functions': [],
   'configuration': {'accountsMapping': [],
    'mlModel': [],
    'externalPackageMapping': {}}}],
 'users': [],
 'createdOn': '2023-03-30T20:43:36.968Z',
 'updatedOn': '2024-07-29T19:32:24.252Z',
 'packageSource': 'DOMO'}

source

get_package_versions

 get_package_versions (auth:domolibrary.client.DomoAuth.DomoAuth,
                       package_id, debug_api:bool=False,
                       parent_class:str=None, debug_num_stacks_to_drop=1,
                       session:httpx.AsyncClient=None)

each package can have one or many version

Exported source
@gd.route_function
async def get_package_versions(
    auth: dmda.DomoAuth,
    package_id,
    debug_api: bool = False,
    parent_class: str = None,
    debug_num_stacks_to_drop=1,
    session : httpx.AsyncClient = None
):
    """each package can have one or many version"""

    url = f"https://{auth.domo_instance}.domo.com/api/codeengine/v2/packages/{package_id}/versions/"

    params = {"parts": "functions,code"}

    res = await gd.get_data(
        url = url,
        method ="get",
        auth=auth,
        params=params,
        debug_api=debug_api,
        num_stacks_to_drop = debug_num_stacks_to_drop,
        parent_class = parent_class,
        session = session
    )

    if not res.is_success:
        raise CodeEngine_API_Error(res = res)
    
    return res
(await get_package_versions(
    auth=auth, package_id=package["id"])).response
[{'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '1.0.0',
  'description': 'Retrieve information about a Domo User.',
  'createdBy': '-1',
  'updatedOn': '2023-05-23T20:06:40.252Z',
  'releasedOn': '2023-03-30T20:43:37.211Z',
  'functions': [{'name': 'getUserDisplayName',
    'displayName': 'getUserDisplayName',
    'description': "Retrieve the specified user's display name.",
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'output': {'name': 'result',
     'displayName': 'result',
     'type': 'text',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': None,
     'entitySubType': None}},
   {'name': 'getUserEmailAddress',
    'displayName': 'getUserEmailAddress',
    'description': 'Get email address for the specified user.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'output': {'name': 'result',
     'displayName': 'result',
     'type': 'text',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': None,
     'entitySubType': None}},
   {'name': 'getUserInformation',
    'displayName': 'getUserInformation',
    'description': 'Get user information.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'output': {'name': 'result',
     'displayName': 'result',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': None,
     'entitySubType': None}}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2023-03-30T22:57:55.960Z',
  'updatedBy': '-1'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '1.1.0',
  'description': '',
  'createdBy': '-1',
  'updatedOn': '2023-06-22T19:53:54.513Z',
  'releasedOn': '2023-06-22T19:34:02.290Z',
  'functions': [{'name': 'displayName',
    'displayName': 'displayName',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'emailAddress',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'fetchPerson',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'fetchUser',
    'description': 'Get user information.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2023-06-22T19:53:47.216Z',
  'updatedBy': '1437951404'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '1.1.1',
  'description': '',
  'createdBy': '1926758222',
  'updatedOn': '2023-08-17T17:25:07.865Z',
  'releasedOn': '2023-08-17T17:22:18.295Z',
  'functions': [{'name': 'displayName',
    'displayName': 'displayName',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': '',
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'emailAddress',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': '',
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'fetchPerson',
    'description': '',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': '',
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'fetchUser',
    'description': 'Get user information.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'number',
      'value': 0,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2023-08-17T17:25:01.049Z',
  'updatedBy': '1926758222'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '2.0.1',
  'description': '',
  'createdBy': '1437951404',
  'updatedOn': '2023-11-17T21:32:51.237Z',
  'releasedOn': '2023-11-17T18:11:58.930Z',
  'functions': [{'name': 'displayName',
    'displayName': 'displayName',
    'description': 'Get the display name for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'emailAddress',
    'description': 'Get the email address for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'fetchPerson',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'fetchUser',
    'description': 'Get the official Domo user object, with details like role / avatar / etc.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'retrieveCurrentUser',
    'displayName': 'retrieveCurrentUser',
    'description': 'Retrieve the user name, email, id for the currently authenticated user',
    'inputs': [],
    'output': {'name': 'currentUser',
     'displayName': 'currentUser',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'retrievePersonsDirectReports',
    'displayName': 'retrievePersonsDirectReports',
    'description': 'Get the user IDs of the direct reports for the specified user',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'directReports',
     'displayName': 'directReports',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None}},
   {'name': 'retrievePersonsSupervisor',
    'displayName': 'retrievePersonsSupervisor',
    'description': "Retrieve the user ID for the specified user's supervisor",
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'supervisor',
     'displayName': 'supervisor',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2023-11-17T21:32:39.497Z',
  'updatedBy': '1437951404'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '2.0.2',
  'description': '',
  'createdBy': '1926758222',
  'updatedOn': '2024-01-08T22:17:34.464Z',
  'releasedOn': '2024-01-05T23:15:34.145Z',
  'functions': [{'name': 'createUser',
    'displayName': 'createUser',
    'description': 'Create a user',
    'inputs': [{'name': 'fullName',
      'displayName': 'fullName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'deleteUser',
    'displayName': 'deleteUser',
    'description': 'Delete the specified user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'isDeleted',
     'displayName': 'isDeleted',
     'type': 'boolean',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'displayName',
    'displayName': 'displayName',
    'description': 'Get the display name for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'emailAddress',
    'description': 'Get the email address for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'fetchPerson',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'fetchUser',
    'description': 'Get the official Domo user object, with details like role / avatar / etc.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2024-01-08T22:17:22.615Z',
  'updatedBy': '1926758222'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '2.0.3',
  'description': '',
  'createdBy': '1658438246',
  'updatedOn': '2024-02-21T23:52:52.710Z',
  'releasedOn': '2024-02-21T16:32:05.245Z',
  'functions': [{'name': 'bulkUpdateUserRoles',
    'displayName': 'Bulk Update User Roles',
    'description': 'Assign the role to every user provided',
    'inputs': [{'name': 'people',
      'displayName': 'people',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': True,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]},
   {'name': 'createUser',
    'displayName': 'Create User',
    'description': 'Create a user',
    'inputs': [{'name': 'fullName',
      'displayName': 'fullName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'roleId',
      'displayName': 'role',
      'type': 'number',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'deleteUser',
    'displayName': 'Delete User',
    'description': 'Delete the specified user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'isDeleted',
     'displayName': 'isDeleted',
     'type': 'boolean',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'displayName',
    'displayName': 'Display Name',
    'description': 'Get the display name for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'Email Address',
    'description': 'Get the email address for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'Fetch Person',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'Fetch User',
    'description': 'Get the official Domo user object, with details like role / avatar / etc.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'getRoleIdByName',
    'displayName': 'Get Role Id By Name',
    'description': 'Search for a role by name',
    'inputs': [{'name': 'roleName',
      'displayName': 'roleName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'roleId',
     'displayName': 'roleId',
     'type': 'number',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoleNames',
    'displayName': 'Get Role Names',
    'description': 'Get the name of every role available',
    'inputs': [],
    'output': {'name': 'names',
     'displayName': 'names',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoles',
    'displayName': 'Get Roles',
    'description': 'Get all user roles available',
    'inputs': [],
    'output': {'name': 'roles',
     'displayName': 'roles',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'inviteUser',
    'displayName': 'Invite User',
    'description': 'Create a user and send an invitation email',
    'inputs': [{'name': 'displayName',
      'displayName': 'displayName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'updateUserRole',
    'displayName': 'Update User Role',
    'description': 'Update the role for a given user',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2024-02-21T23:52:40.503Z',
  'updatedBy': '1658438246'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '2.0.4',
  'description': '',
  'createdBy': '17328249',
  'updatedOn': '2024-02-23T21:05:46.977Z',
  'releasedOn': '2024-02-23T00:14:57.117Z',
  'functions': [{'name': 'bulkUpdateUserRoles',
    'displayName': 'Bulk Update User Roles',
    'description': 'Assign the role to every user provided',
    'inputs': [{'name': 'people',
      'displayName': 'people',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': True,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]},
   {'name': 'createUser',
    'displayName': 'Create User',
    'description': 'Create a user',
    'inputs': [{'name': 'fullName',
      'displayName': 'fullName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'roleId',
      'displayName': 'role',
      'type': 'number',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'deleteUser',
    'displayName': 'Delete User',
    'description': 'Delete the specified user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'isDeleted',
     'displayName': 'isDeleted',
     'type': 'boolean',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'displayName',
    'displayName': 'Display Name',
    'description': 'Get the display name for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'Email Address',
    'description': 'Get the email address for the requested user',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'Fetch Person',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'Fetch User',
    'description': 'Get the official Domo user object, with details like role / avatar / etc.',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'getRoleIdByName',
    'displayName': 'Get Role Id By Name',
    'description': 'Search for a role by name',
    'inputs': [{'name': 'roleName',
      'displayName': 'roleName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'roleId',
     'displayName': 'roleId',
     'type': 'number',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoleNames',
    'displayName': 'Get Role Names',
    'description': 'Get the name of every role available',
    'inputs': [],
    'output': {'name': 'names',
     'displayName': 'names',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoles',
    'displayName': 'Get Roles',
    'description': 'Get all user roles available',
    'inputs': [],
    'output': {'name': 'roles',
     'displayName': 'roles',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'inviteUser',
    'displayName': 'Invite User',
    'description': 'Create a user and send an invitation email',
    'inputs': [{'name': 'displayName',
      'displayName': 'displayName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'updateUserRole',
    'displayName': 'Update User Role',
    'description': 'Update the role for a given user',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2024-02-23T21:05:41.181Z',
  'updatedBy': '17328249'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '2.0.5',
  'description': '',
  'createdBy': '1658438246',
  'updatedOn': '2024-03-15T20:19:23.998Z',
  'releasedOn': '2024-03-15T16:39:52.608Z',
  'functions': [{'name': 'bulkUpdateUserRoles',
    'displayName': 'Bulk Update User Roles',
    'description': 'Assign the role to every user provided',
    'example': '### Input \n\n - **people**: [123456789, 456789132]\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
    'inputs': [{'name': 'people',
      'displayName': 'people',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': True,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]},
   {'name': 'createUser',
    'displayName': 'Create User',
    'description': 'Create a user',
    'example': '### Input \n\n - **fullName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **roleId**: 2\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'fullName',
      'displayName': 'fullName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'roleId',
      'displayName': 'role',
      'type': 'number',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'deleteUser',
    'displayName': 'Delete User',
    'description': 'Delete the specified user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **isDeleted**: true',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'isDeleted',
     'displayName': 'isDeleted',
     'type': 'boolean',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'displayName',
    'displayName': 'Display Name',
    'description': 'Get the display name for the requested user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **displayName**: "Bob Builder"',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'Email Address',
    'description': 'Get the email address for the requested user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **emailAddress**: "bob.builder@domo.com"',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'Fetch Person',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **person**: \n  ```\n{\n    "name": "Bob Builder",\n    "id": 123456789,\n    "location": "Utah",\n    "manager": "456789123",\n    "phoneNumber": "801-555-5555",\n    "title": "Software Engineer"\n}',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'Fetch User',
    'description': 'Get the official Domo user object, with details like role / avatar / etc.',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 4567891253,\n    "displayName": "Bob Builder",\n    "role": "Admin",\n    "roleId": 1,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'person',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'getRoleIdByName',
    'displayName': 'Get Role Id By Name',
    'description': 'Search for a role by name',
    'example': '### Input \n\n - **roleName**: "Admin"\n\n --- \n\n### Output \n\n - **roleId**: 1',
    'inputs': [{'name': 'roleName',
      'displayName': 'roleName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'roleId',
     'displayName': 'roleId',
     'type': 'number',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoleNames',
    'displayName': 'Get Role Names',
    'description': 'Get the name of every role available',
    'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **names**: \n  ```\n[\n    "Admin",\n    "Privileged",\n    "Editor",\n    "Participant",\n    "Social"\n]',
    'inputs': [],
    'output': {'name': 'names',
     'displayName': 'names',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoles',
    'displayName': 'Get Roles',
    'description': 'Get all user roles available',
    'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **roles**: \n  ```\n[\n    {\n        "id": 1,\n        "name": "Admin"\n    },\n    {\n        "id": 2,\n        "name": "Privileged"\n    },\n    {\n        "id": 3,\n        "name": "Editor"\n    },\n    {\n        "id": 4,\n        "name": "Participant"\n    },\n    {\n        "id": 5,\n        "name": "Social"\n    }\n]',
    'inputs': [],
    'output': {'name': 'roles',
     'displayName': 'roles',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'inviteUser',
    'displayName': 'Invite User',
    'description': 'Create a user and send an invitation email',
    'example': '### Input \n\n - **displayName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **role**: "Privileged"\n\n --- \n\n### Output \n\n - **user**:\n  ```\n   {\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'displayName',
      'displayName': 'displayName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'updateUserRole',
    'displayName': 'Update User Role',
    'description': 'Update the role for a given user',
    'example': '### Input \n\n - **person**: 123456789\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2024-03-15T20:19:12.449Z',
  'updatedBy': '1658438246'},
 {'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
  'version': '3.0.0',
  'description': '',
  'createdBy': '1658438246',
  'updatedOn': '2024-05-10T18:26:23.306Z',
  'releasedOn': '2024-05-09T21:16:42.877Z',
  'functions': [{'name': 'bulkUpdateUserRoles',
    'displayName': 'Bulk Update User Roles',
    'description': 'Assign the role to every user provided',
    'example': '### Input \n\n - **people**: [123456789, 456789132]\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
    'inputs': [{'name': 'people',
      'displayName': 'people',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': True,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]},
   {'name': 'createUser',
    'displayName': 'Create User',
    'description': 'Create a user',
    'example': '### Input \n\n - **fullName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **roleId**: 2\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'fullName',
      'displayName': 'fullName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'roleId',
      'displayName': 'role',
      'type': 'number',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'deleteUser',
    'displayName': 'Delete User',
    'description': 'Delete the specified user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **isDeleted**: true',
    'inputs': [{'name': 'userId',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'isDeleted',
     'displayName': 'isDeleted',
     'type': 'boolean',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'displayName',
    'displayName': 'Display Name',
    'description': 'Get the display name for the requested user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **displayName**: "Bob Builder"',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'emailAddress',
    'displayName': 'Email Address',
    'description': 'Get the email address for the requested user',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **emailAddress**: "bob.builder@domo.com"',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'emailAddress',
     'displayName': 'emailAddress',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'fetchPerson',
    'displayName': 'Fetch Person',
    'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **person**: \n  ```\n{\n    "name": "Bob Builder",\n    "id": 123456789,\n    "location": "Utah",\n    "manager": "456789123",\n    "phoneNumber": "801-555-5555",\n    "title": "Software Engineer"\n}',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'person',
     'displayName': 'person',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'manager',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'location',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'phoneNumber',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'title',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'fetchUser',
    'displayName': 'Fetch User',
    'description': 'Get the official Domo user object, with details like role / avatar / etc',
    'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 4567891253,\n    "displayName": "Bob Builder",\n    "role": "Admin",\n    "roleId": 1,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'person',
      'displayName': 'userId',
      'type': 'person',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'displayName',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'avatarKey',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'role',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'roleId',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'detail',
       'displayName': None,
       'type': 'object',
       'value': {},
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'getRoleIdByName',
    'displayName': 'Get Role Id By Name',
    'description': 'Search for a role by name',
    'example': '### Input \n\n - **roleName**: "Admin"\n\n --- \n\n### Output \n\n - **roleId**: 1',
    'inputs': [{'name': 'roleName',
      'displayName': 'roleName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'roleId',
     'displayName': 'roleId',
     'type': 'number',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoleNames',
    'displayName': 'Get Role Names',
    'description': 'Get the name of every role available',
    'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **names**: \n  ```\n[\n    "Admin",\n    "Privileged",\n    "Editor",\n    "Participant",\n    "Social"\n]',
    'inputs': [],
    'output': {'name': 'names',
     'displayName': 'names',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None}},
   {'name': 'getRoles',
    'displayName': 'Get Roles',
    'description': 'Get all user roles available',
    'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **roles**: \n  ```\n[\n    {\n        "id": 1,\n        "name": "Admin"\n    },\n    {\n        "id": 2,\n        "name": "Privileged"\n    },\n    {\n        "id": 3,\n        "name": "Editor"\n    },\n    {\n        "id": 4,\n        "name": "Participant"\n    },\n    {\n        "id": 5,\n        "name": "Social"\n    }\n]',
    'inputs': [],
    'output': {'name': 'roles',
     'displayName': 'roles',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [{'name': 'id',
       'displayName': None,
       'type': 'number',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None},
      {'name': 'name',
       'displayName': None,
       'type': 'text',
       'value': None,
       'nullable': False,
       'isList': False,
       'children': None,
       'entitySubType': None}],
     'entitySubType': None}},
   {'name': 'inviteUser',
    'displayName': 'Invite User',
    'description': 'Create a user and send an invitation email',
    'example': '### Input \n\n - **displayName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **role**: "Privileged"\n\n --- \n\n### Output \n\n - **user**:\n  ```\n   {\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
    'inputs': [{'name': 'displayName',
      'displayName': 'displayName',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'email',
      'displayName': 'email',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}],
    'output': {'name': 'user',
     'displayName': 'user',
     'type': 'object',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}},
   {'name': 'updateUserRole',
    'displayName': 'Update User Role',
    'description': 'Update the role for a given user',
    'example': '### Input \n\n - **person**: 123456789\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
    'inputs': [{'name': 'person',
      'displayName': 'person',
      'type': 'person',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None},
     {'name': 'role',
      'displayName': 'role',
      'type': 'text',
      'value': None,
      'nullable': True,
      'isList': False,
      'children': [],
      'entitySubType': None}]}],
  'configuration': {'accountsMapping': [],
   'mlModel': [],
   'externalPackageMapping': {}},
  'createdOn': '2024-05-10T18:26:17.539Z',
  'updatedBy': '1658438246'}]

source

get_codeengine_package_by_id_and_version

 get_codeengine_package_by_id_and_version (package_id, version,
                                           auth:domolibrary.client.DomoAut
                                           h.DomoAuth,
                                           debug_api:bool=False,
                                           params:dict=None,
                                           session:httpx.AsyncClient=None,
                                           parent_class:str=None,
                                           debug_num_stacks_to_drop=1)
Exported source
@gd.route_function
async def get_codeengine_package_by_id_and_version(
    package_id,
    version,
    auth: dmda.DomoAuth,
    debug_api: bool = False,
    params: dict = None,
    session: httpx.AsyncClient = None,
    parent_class: str = None,
    debug_num_stacks_to_drop=1,
) -> rgd.ResponseGetData:
    url = f"https://{auth.domo_instance}.domo.com/api/codeengine/v2/packages/{package_id}/versions/{version}"

    params = params or {"parts": "functions,code"}

    return await gd.get_data(
        auth=auth,
        url=url,
        method="GET",
        debug_api=debug_api,
        params=params,
        session=session,
        parent_class=parent_class,
        num_stacks_to_drop=debug_num_stacks_to_drop,
    )
token_auth = dmda.DomoTokenAuth(
    domo_instance=os.environ['DOMO_INSTANCE'],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

res = await get_codeengine_package_by_id_and_version(
    package_id="0b628c44-0a1a-4e76-83ae-681cde27b129",
    version="2.0.5",
    auth=token_auth,
    debug_api=False,
)

res.response
warning this token has not been validated by who_am_i, run get_auth_token first
{'packageId': '0b628c44-0a1a-4e76-83ae-681cde27b129',
 'version': '2.0.5',
 'description': '',
 'code': "const codeengine = require('codeengine');\n\nclass Helpers {\n  /**\n   * Helper function to handle API requests and errors\n   * @param {string} method - The HTTP method\n   * @param {string} url - The endpoint URL\n   * @param {Object} [body=null] - The request body\n   * @returns {Object} The response data\n   * @throws {Error} If the request fails\n   */\n  static async handleRequest(method, url, body = null) {\n    try {\n      return await codeengine.sendRequest(method, url, body);\n    } catch (error) {\n      console.error(`Error with ${method} request to ${url}:`, error);\n      throw error;\n    }\n  }\n}\n\n/**\n * Fetches the user object\n *\n * @param {Person} person - The person\n * @returns {object} - The user object\n */\nasync function fetchUser(person) {\n  try {\n    return await Helpers.handleRequest(\n      'get',\n      `/api/content/v3/users/${person}?includeDetails=true`,\n    );\n  } catch (error) {\n    console.error(error);\n  }\n}\n\n/**\n * Fetches the Person Entity information\n *\n * @param {Person} person - The person\n * @returns {object} - Information about the person\n */\nasync function fetchPerson(person) {\n  try {\n    const response = await Helpers.handleRequest(\n      'get',\n      `api/identity/v1/users/${person}?parts=detailed`,\n    );\n    const users = response?.users;\n    const firstUser = users?.[0];\n    const attributes = firstUser?.attributes;\n\n    if (!attributes || !attributes.length) return undefined;\n\n    const mappedResponse = attributes.reduce(\n      (map, obj) => ({\n        ...map,\n        [obj.key]: Array.isArray(obj.values) ? obj.values[0] : undefined,\n      }),\n      {},\n    );\n\n    return {\n      name: mappedResponse.displayName,\n      id: mappedResponse.id,\n      location: mappedResponse.employeeLocation,\n      manager: mappedResponse.reportsTo,\n      phoneNumber: mappedResponse.phoneNumber,\n      title: mappedResponse.title,\n    };\n  } catch (error) {\n    console.error(error);\n  }\n}\n\n/**\n * Creates a new user\n *\n * @param {string} fullName - The users full name which will be used as the display name\n * @param {string} email - The users email address\n * @param {number} roleId - The id of the role to assign to the user\n *\n * @returns {object} - The user object that was created\n * @throws {Error} - If the user could not be created\n */\nasync function createUser(fullName, email, roleId) {\n  try {\n    return await Helpers.handleRequest('post', '/api/content/v3/users', {\n      detail: {\n        email,\n      },\n      displayName: fullName,\n      roleId,\n    });\n  } catch (error) {\n    throw new Error('Unable to create user.', error);\n  }\n}\n\n/**\n * Deletes a user\n *\n * @param {Person} userId - The user\n *\n * @returns {boolean} - True if the user was deleted successfully\n * @throws {Error} - If the user could not be deleted\n */\nasync function deleteUser(userId) {\n  try {\n    await Helpers.handleRequest('delete', `/api/identity/v1/users/${userId}`);\n    return true;\n  } catch (error) {\n    throw new Error('Unable to delete user.', error);\n  }\n}\n\n/**\n * Retrieve the specified users email address\n *\n * @param {Person} person - The person\n * @returns {string} - The users Email address\n */\nasync function emailAddress(person) {\n  const user = await fetchUser(person);\n  return user?.detail?.email;\n}\n\n/**\n * Retrieve the specified users display name\n *\n * @param {Person} person - The person\n * @returns {string} - The users display name\n */\nasync function displayName(person) {\n  const user = await fetchUser(person);\n  return user?.displayName;\n}\n\n/**\n * Fetches all roles in the system\n * @returns {{id: string, name: string}[]} The roles\n */\nasync function getRoles() {\n  const roles = await Helpers.handleRequest(\n    'GET',\n    '/api/authorization/v1/roles',\n  );\n  return roles.map(({id, name}) => ({id, name}));\n}\n\n/**\n * Fetches the names of all roles in the system\n * @returns {string[]} The role names\n */\nasync function getRoleNames() {\n  const roles = await getRoles();\n  return roles.map(({name}) => name);\n}\n\n/**\n * Fetches the id of a role by its name\n * @param {string} roleName - The name of the role\n * @returns {string | null} The role ID, or null if not found\n */\nasync function getRoleIdByName(roleName) {\n  const roles = await getRoles();\n  const foundRole = roles.find(({name}) => name === roleName);\n  return foundRole ? foundRole.id : null;\n}\n\n/**\n * Invites a new user\n * @param {string} displayName - The user's display name\n * @param {string} email - The user's email\n * @param {string} role - The user's role\n * @returns {Object} The response data\n */\nasync function inviteUser(displayName, email, role) {\n  const roleId = await getRoleIdByName(role);\n  const body = {displayName, detail: {email}, roleId};\n  return Helpers.handleRequest('POST', '/api/content/v3/users', body);\n}\n\n/**\n * Updates a user's role\n * @param {Person} person - The person\n * @param {string} role - The new role\n * @returns {Object} The response data\n */\nasync function updateUserRole(person, role) {\n  const roleId = await getRoleIdByName(role);\n  await Helpers.handleRequest(\n    'PUT',\n    `/api/authorization/v1/roles/${roleId}/users`,\n    [person],\n  );\n}\n\n/**\n * Updates roles for multiple users\n * @param {Person[]} people - The people\n * @param {string} role - The new role\n * @returns {Object} The response data\n */\nasync function bulkUpdateUserRoles(people, role) {\n  const roleId = await getRoleIdByName(role);\n  await Helpers.handleRequest(\n    'PUT',\n    `/api/authorization/v1/roles/${roleId}/users`,\n    people,\n  );\n}\n\nmodule.exports = {\n  fetchUser,\n  fetchPerson,\n  emailAddress,\n  displayName,\n  createUser,\n  deleteUser,\n  getRoles,\n  getRoleNames,\n  getRoleIdByName,\n  inviteUser,\n  updateUserRole,\n  bulkUpdateUserRoles,\n};\n",
 'createdBy': '1658438246',
 'updatedOn': '2024-03-15T20:19:23.998Z',
 'releasedOn': '2024-03-15T16:39:52.608Z',
 'functions': [{'name': 'bulkUpdateUserRoles',
   'displayName': 'Bulk Update User Roles',
   'description': 'Assign the role to every user provided',
   'example': '### Input \n\n - **people**: [123456789, 456789132]\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
   'inputs': [{'name': 'people',
     'displayName': 'people',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': True,
     'children': [],
     'entitySubType': None},
    {'name': 'role',
     'displayName': 'role',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}]},
  {'name': 'createUser',
   'displayName': 'Create User',
   'description': 'Create a user',
   'example': '### Input \n\n - **fullName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **roleId**: 2\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
   'inputs': [{'name': 'fullName',
     'displayName': 'fullName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None},
    {'name': 'email',
     'displayName': 'email',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None},
    {'name': 'roleId',
     'displayName': 'role',
     'type': 'number',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'user',
    'displayName': 'user',
    'type': 'object',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'deleteUser',
   'displayName': 'Delete User',
   'description': 'Delete the specified user',
   'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **isDeleted**: true',
   'inputs': [{'name': 'userId',
     'displayName': 'userId',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'isDeleted',
    'displayName': 'isDeleted',
    'type': 'boolean',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'displayName',
   'displayName': 'Display Name',
   'description': 'Get the display name for the requested user',
   'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **displayName**: "Bob Builder"',
   'inputs': [{'name': 'person',
     'displayName': 'person',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'displayName',
    'displayName': 'displayName',
    'type': 'text',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'emailAddress',
   'displayName': 'Email Address',
   'description': 'Get the email address for the requested user',
   'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **emailAddress**: "bob.builder@domo.com"',
   'inputs': [{'name': 'person',
     'displayName': 'person',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'emailAddress',
    'displayName': 'emailAddress',
    'type': 'text',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'fetchPerson',
   'displayName': 'Fetch Person',
   'description': 'Get a condensed user object that only has the most used fields; ie, name, email, phone.',
   'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **person**: \n  ```\n{\n    "name": "Bob Builder",\n    "id": 123456789,\n    "location": "Utah",\n    "manager": "456789123",\n    "phoneNumber": "801-555-5555",\n    "title": "Software Engineer"\n}',
   'inputs': [{'name': 'person',
     'displayName': 'person',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'person',
    'displayName': 'person',
    'type': 'object',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [{'name': 'id',
      'displayName': None,
      'type': 'number',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'name',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'manager',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'location',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'phoneNumber',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'title',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'entitySubType': None}},
  {'name': 'fetchUser',
   'displayName': 'Fetch User',
   'description': 'Get the official Domo user object, with details like role / avatar / etc.',
   'example': '### Input \n\n - **userId**: 123456789\n\n --- \n\n### Output \n\n - **user**: \n  ```\n{\n    "id": 123456789,\n    "invitorUserId": 4567891253,\n    "displayName": "Bob Builder",\n    "role": "Admin",\n    "roleId": 1,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
   'inputs': [{'name': 'person',
     'displayName': 'userId',
     'type': 'person',
     'value': None,
     'nullable': False,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'user',
    'displayName': 'user',
    'type': 'object',
    'value': None,
    'nullable': False,
    'isList': False,
    'children': [{'name': 'id',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'displayName',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'avatarKey',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'role',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'roleId',
      'displayName': None,
      'type': 'number',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'detail',
      'displayName': None,
      'type': 'object',
      'value': {},
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'entitySubType': None}},
  {'name': 'getRoleIdByName',
   'displayName': 'Get Role Id By Name',
   'description': 'Search for a role by name',
   'example': '### Input \n\n - **roleName**: "Admin"\n\n --- \n\n### Output \n\n - **roleId**: 1',
   'inputs': [{'name': 'roleName',
     'displayName': 'roleName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'roleId',
    'displayName': 'roleId',
    'type': 'number',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'getRoleNames',
   'displayName': 'Get Role Names',
   'description': 'Get the name of every role available',
   'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **names**: \n  ```\n[\n    "Admin",\n    "Privileged",\n    "Editor",\n    "Participant",\n    "Social"\n]',
   'inputs': [],
   'output': {'name': 'names',
    'displayName': 'names',
    'type': 'text',
    'value': None,
    'nullable': True,
    'isList': True,
    'children': [],
    'entitySubType': None}},
  {'name': 'getRoles',
   'displayName': 'Get Roles',
   'description': 'Get all user roles available',
   'example': '### Input \n\n \n\n --- \n\n### Output \n\n - **roles**: \n  ```\n[\n    {\n        "id": 1,\n        "name": "Admin"\n    },\n    {\n        "id": 2,\n        "name": "Privileged"\n    },\n    {\n        "id": 3,\n        "name": "Editor"\n    },\n    {\n        "id": 4,\n        "name": "Participant"\n    },\n    {\n        "id": 5,\n        "name": "Social"\n    }\n]',
   'inputs': [],
   'output': {'name': 'roles',
    'displayName': 'roles',
    'type': 'object',
    'value': None,
    'nullable': True,
    'isList': True,
    'children': [{'name': 'id',
      'displayName': None,
      'type': 'number',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None},
     {'name': 'name',
      'displayName': None,
      'type': 'text',
      'value': None,
      'nullable': False,
      'isList': False,
      'children': None,
      'entitySubType': None}],
    'entitySubType': None}},
  {'name': 'inviteUser',
   'displayName': 'Invite User',
   'description': 'Create a user and send an invitation email',
   'example': '### Input \n\n - **displayName**: "Bob Builder"\n - **email**: "bob.builder@domo.com"\n - **role**: "Privileged"\n\n --- \n\n### Output \n\n - **user**:\n  ```\n   {\n    "id": 123456789,\n    "invitorUserId": 456789123,\n    "displayName": "Bob Builder",\n    "role": "Privileged",\n    "roleId": 2,\n    "detail": {\n        "email": "bob.builder@domo.com",\n        "pending": true,\n        "active": true,\n        "created": 1706042496,\n        "modified": 1706042496\n    }\n}',
   'inputs': [{'name': 'displayName',
     'displayName': 'displayName',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None},
    {'name': 'email',
     'displayName': 'email',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None},
    {'name': 'role',
     'displayName': 'role',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}],
   'output': {'name': 'user',
    'displayName': 'user',
    'type': 'object',
    'value': None,
    'nullable': True,
    'isList': False,
    'children': [],
    'entitySubType': None}},
  {'name': 'updateUserRole',
   'displayName': 'Update User Role',
   'description': 'Update the role for a given user',
   'example': '### Input \n\n - **person**: 123456789\n - **role**: "Admin"\n\n --- \n\n### Output \n\n**void**',
   'inputs': [{'name': 'person',
     'displayName': 'person',
     'type': 'person',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None},
    {'name': 'role',
     'displayName': 'role',
     'type': 'text',
     'value': None,
     'nullable': True,
     'isList': False,
     'children': [],
     'entitySubType': None}]}],
 'configuration': {'accountsMapping': [],
  'mlModel': [],
  'externalPackageMapping': {}},
 'createdOn': '2024-03-15T20:19:12.449Z',
 'updatedBy': '1658438246'}
package_id = "37e449bf-52da-43ab-872e-361a643e13b6"
version = "1.0.0"

token_auth = dmda.DomoTokenAuth(
    domo_instance=os.environ['DOMO_INSTANCE'],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

res = await get_codeengine_package_by_id_and_version(
    package_id=package_id, version=version, auth=token_auth, debug_api=False
)

res.response
res.response["code"]

source

extract_functions

 extract_functions (function_ls:List[dict], code:str, language:str,
                    parse_fn:Callable=None)

helper function that handles parsing

Type Default Details
function_ls List from API, function metadata
code str from API, code string
language str PYTHON or JAVASCRIPT, must align with parse_functions_factory enum
parse_fn Callable None function for exctracting functions must receive code:str and function_name:str`

source

parse_functions_factory

 parse_functions_factory (value, names=None, module=None, qualname=None,
                          type=None, start=1)

An enumeration.


source

parse_python

 parse_python (function_name, code)

source

parse_javascript

 parse_javascript (function_name, code)

source

remove_after_closing_parens

 remove_after_closing_parens (code, **kwargs)

source

parse_javascript_between_module

 parse_javascript_between_module (code, function_name)

source

parse_javascript_between_functions

 parse_javascript_between_functions (code, function_name)

source

remove_javascript_comments

 remove_javascript_comments (code, **kwargs)
package_id = "0b628c44-0a1a-4e76-83ae-681cde27b129"
version = "2.0.5"

token_auth = dmda.DomoTokenAuth(
    domo_instance=os.environ['DOMO_INSTANCE'],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

res = await get_codeengine_package_by_id_and_version(
    package_id=package_id, version=version, auth=token_auth, debug_api=False
)

package = res.response

extract_functions(
    function_ls=package["functions"], code=package["code"], language="JAVASCRIPT"
)
package_id = "37e449bf-52da-43ab-872e-361a643e13b6"
version = "1.0.0"

token_auth = dmda.DomoTokenAuth(
    domo_instance=os.environ['DOMO_INSTANCE'],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

res = await get_codeengine_package_by_id_and_version(
    package_id=package_id, version=version, auth=token_auth, debug_api=False
)

package = res.response

extract_functions(
    function_ls=package["functions"], code=package["code"], language="PYTHON"
)