Instance Configuration_API_Client

a class based approach to configuring your domo instance
token_auth = dmda.DomoTokenAuth(
    domo_instance=os.environ["DOMO_INSTANCE"],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

full_auth = dmda.DomoFullAuth(
    domo_instance=os.environ["DOMO_INSTANCE"],
    domo_username=os.environ["DOMO_USERNAME"],
    domo_password=os.environ["DOMO_PASSWORD"],
)

source

ApiClient

 ApiClient (auth:domolibrary.client.DomoAuth.DomoAuth, id:int, name:str,
            client_id:str, owner_id:str,
            domo_user:domolibrary.classes.DomoUser.DomoUser,
            authorization_grant_types:List[str], scope:List[domolibrary.ro
            utes.instance_config_api_client.ApiClient_ScopeEnum],
            description:str=None, is_invalid:bool=False)

source

ApiClients

 ApiClients (auth:domolibrary.client.DomoAuth.DomoAuth,
             domo_clients:List[__main__.ApiClient]=<factory>,
             invalid_clients:List[__main__.ApiClient]=<factory>)

source

ApiClient_Search_Error

 ApiClient_Search_Error (cls_instance, client_name:str)

base exception

domo_clients = ApiClients(auth=full_auth)
await domo_clients.get_by_name(client_name="AWS Export")
ApiClient(id=8939, name='AWS Export', client_id='68fa308a-b408-XXXX-XXXX-XXXXXXXXXXXX', owner_id=68216396, domo_user=DomoUser(id='68216396', display_name='Elliott Leonard', email_address='egleonard88@gmail.com', role_id=1, department='Owner', title=None, avatar_key='/api/content/v1/avatar/USER/68216396', phone_number='9702198956', web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to='1741757362', publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2021, 8, 3, 20, 12, 56), last_activity_dt=datetime.datetime(2024, 10, 28, 21, 12, 20, 963000), custom_attributes={}, role=DomoRole(id=1, name='Admin', description='Full access to everything', is_system_role=True, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>, <ApiClient_ScopeEnum.BUZZ: 'buzz'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=False)
domo_clients = ApiClients(auth=full_auth)
(await domo_clients.get(return_raw=False))[0:5]
[ApiClient(id=4731, name='SF Write-back', client_id='374b3480-4fdd-XXXX-XXXX-XXXXXXXXXXXX', owner_id=68216396, domo_user=DomoUser(id='68216396', display_name='Elliott Leonard', email_address='egleonard88@gmail.com', role_id=1, department='Owner', title=None, avatar_key='/api/content/v1/avatar/USER/68216396', phone_number='9702198956', web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to='1741757362', publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2021, 8, 3, 20, 12, 56), last_activity_dt=datetime.datetime(2024, 10, 28, 21, 12, 20, 963000), custom_attributes={}, role=DomoRole(id=1, name='Admin', description='Full access to everything', is_system_role=True, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>, <ApiClient_ScopeEnum.BUZZ: 'buzz'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=False),
 ApiClient(id=8939, name='AWS Export', client_id='68fa308a-b408-XXXX-XXXX-XXXXXXXXXXXX', owner_id=68216396, domo_user=DomoUser(id='68216396', display_name='Elliott Leonard', email_address='egleonard88@gmail.com', role_id=1, department='Owner', title=None, avatar_key='/api/content/v1/avatar/USER/68216396', phone_number='9702198956', web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to='1741757362', publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2021, 8, 3, 20, 12, 56), last_activity_dt=datetime.datetime(2024, 10, 28, 21, 12, 20, 963000), custom_attributes={}, role=DomoRole(id=1, name='Admin', description='Full access to everything', is_system_role=True, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>, <ApiClient_ScopeEnum.BUZZ: 'buzz'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=False),
 ApiClient(id=12739, name='Domo IDEA Orchestration', client_id='9647357d-b136-XXXX-XXXX-XXXXXXXXXXXX', owner_id=1026818196, domo_user=DomoUser(id='1026818196', display_name='Giuseppe Russo', email_address='giuseppe.russo@everli.com', role_id=2097317660, department=None, title=None, avatar_key='/api/content/v1/avatar/USER/1026818196', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to='1178984171', publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2021, 4, 12, 9, 14, 13), last_activity_dt=datetime.datetime(2024, 1, 22, 20, 44, 21, 270000), custom_attributes={}, role=DomoRole(id=2097317660, name='Community_Default_Priviliged', description='Full access except for editing users and settings owners', is_system_role=0, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>, <ApiClient_ScopeEnum.BUZZ: 'buzz'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=False),
 ApiClient(id=18413, name='Plan Writeback', client_id='d8cda0c5-f125-XXXX-XXXX-XXXXXXXXXXXX', owner_id=1536267297, domo_user=None, authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=True),
 ApiClient(id=19020, name='Desc', client_id='dfeec71d-64ca-XXXX-XXXX-XXXXXXXXXXXX', owner_id=1345737456, domo_user=DomoUser(id='1345737456', display_name='Aditya Jain', email_address='jain_aditya95@yahoo.com', role_id=2, department=None, title=None, avatar_key='/api/content/v1/avatar/USER/1345737456', phone_number='', web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to='1141078945', publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2021, 4, 27, 8, 26, 46), last_activity_dt=datetime.datetime(2024, 6, 10, 13, 0, 7, 539000), custom_attributes={}, role=DomoRole(id=2, name='Privileged', description='Full access except for editing users and settings owners', is_system_role=True, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>, <ApiClient_ScopeEnum.BUZZ: 'buzz'>, <ApiClient_ScopeEnum.USER: 'user'>, <ApiClient_ScopeEnum.ACCOUNT: 'account'>, <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>], description='', is_invalid=False)]
pprint(
    (
        await ApiClient.get_by_id(
            auth=token_auth, client_id=domo_clients.domo_clients[0].id, return_raw=False
        )
    )
)
ApiClient(id=4731,
          name='SF Write-back',
          client_id='374b3480-4fdd-XXXX-XXXX-XXXXXXXXXXXX',
          owner_id=68216396,
          domo_user=DomoUser(id='68216396',
                             display_name='Elliott Leonard',
                             email_address='egleonard88@gmail.com',
                             role_id=1,
                             department='Owner',
                             title=None,
                             avatar_key='/api/content/v1/avatar/USER/68216396',
                             phone_number='9702198956',
                             web_landing_page=None,
                             web_mobile_landing_page=None,
                             employee_id=None,
                             employee_number=None,
                             hire_date=None,
                             reports_to='1741757362',
                             publisher_domain=None,
                             subscriber_domain=None,
                             virtual_user_id=None,
                             created_dt=datetime.datetime(2021, 8, 3, 20, 12, 56),
                             last_activity_dt=datetime.datetime(2024, 10, 28, 21, 12, 20, 963000),
                             custom_attributes={},
                             role=DomoRole(id=1,
                                           name='Admin',
                                           description='Full access to '
                                                       'everything',
                                           is_system_role=True,
                                           is_default_role=None,
                                           grant_ls=[],
                                           membership_ls=[]),
                             domo_api_clients=None,
                             domo_access_tokens=None),
          authorization_grant_types=['client_credentials'],
          scope=[<ApiClient_ScopeEnum.DATA: 'data'>,
                 <ApiClient_ScopeEnum.WORKFLOW: 'workflow'>,
                 <ApiClient_ScopeEnum.AUDIT: 'audit'>,
                 <ApiClient_ScopeEnum.BUZZ: 'buzz'>,
                 <ApiClient_ScopeEnum.USER: 'user'>,
                 <ApiClient_ScopeEnum.ACCOUNT: 'account'>,
                 <ApiClient_ScopeEnum.DASHBOARD: 'dashboard'>],
          description='',
          is_invalid=False)
domo_clients = ApiClients(auth=full_auth)

domo_client = None

try:
    domo_client = await domo_clients.create_for_authorized_user(
        client_name="catty rats2",
        scope=[ApiClient_ScopeEnum.DATA, ApiClient_ScopeEnum.AUDIT],
        debug_api=False,
    )

except ApiClient_CRUD_Error as e:
    print(e)
    
domo_client
🛑  ApiClient_CRUD_Error 🛑 - function: ApiClients.get_traceback || status 400 || Bad Request -- does the client already exist? at domo-community
if domo_client:
    print(await domo_client.revoke())
await domo_clients.upsert_client(
    client_name="catty rats2",
    scope=[ApiClient_ScopeEnum.DATA, ApiClient_ScopeEnum.AUDIT],
    debug_api=False,
    is_regenerate = False
)
ApiClient(id=34083, name='catty rats2', client_id='15b32462-74bf-XXXX-XXXX-XXXXXXXXXXXX', owner_id=1893952720, domo_user=DomoUser(id='1893952720', display_name='Jae Wilson1', email_address='jae@datacrew.space', role_id=810756122, department='Business Improvement', title=None, avatar_key='/api/content/v1/avatar/USER/1893952720', phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=datetime.datetime(2020, 5, 8, 17, 55, 18), last_activity_dt=datetime.datetime(2024, 10, 30, 1, 48, 20, 341000), custom_attributes={}, role=DomoRole(id=810756122, name='super_admin', description='all grants - updated on 2024-10-29', is_system_role=0, is_default_role=None, grant_ls=[], membership_ls=[]), domo_api_clients=None, domo_access_tokens=None), authorization_grant_types=['client_credentials'], scope=[<ApiClient_ScopeEnum.DATA: 'data'>, <ApiClient_ScopeEnum.AUDIT: 'audit'>], description=None, is_invalid=False)