Source code for q2_sdk.hq.db.admin_logons

from argparse import _SubParsersAction
from functools import partial
from typing import List, Optional

from lxml.objectify import IntElement, StringElement

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.hq.models.hq_params.stored_procedure import Param

from .db_object import DbObject
from .representation_row_base import RepresentationRowBase

D_TYPES = ExecuteStoredProcedure.DataType


[docs] class AdminLogonsRow(RepresentationRowBase): AdminUserLogonID: IntElement = "AdminUserLogonID" AdminUserID: IntElement = "AdminUserID" LoginName: StringElement = "LoginName" DeletedDate: StringElement = "DeletedDate"
[docs] class AdminLogons(DbObject): """ Note: This database object should only be used to support integrations that rely on it. If that is not the case, use the AdminUserLogon DBObject instead. """ GET_BY_NAME_KEY = "LoginName" NAME = "AdminLogons" REPRESENTATION_ROW_CLASS = AdminLogonsRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_admin_logons") subparser.set_defaults(parser="get") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser.add_argument("-l", "--login-name", help="Q2_AdminLogons.LoginName") subparser.add_argument( "-d", "--include-deleted", action="store_true", help="include deleted admins", )
[docs] async def get( self, login_name: Optional[int] = None, include_deleted=False, serialize_for_cli=False, ) -> List[AdminLogonsRow]: sql_params = [] if login_name: Param(login_name, D_TYPES.VarChar, "login_name").add_to_param_list( sql_params ) if include_deleted: Param(include_deleted, D_TYPES.Bit, "include_deleted").add_to_param_list( sql_params ) response = await self.call_hq( "sdk_GetAdminLogons", ExecuteStoredProcedure.SqlParameters(sql_params) ) if serialize_for_cli: columns = ["AdminUserLogonID", "AdminUserID", "LoginName", "DeletedDate"] response = self.serialize_for_cli(response, columns) return response