Source code for q2_sdk.hq.db.sec_alert_profile

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

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.hq.table_row import TableRow

from .db_object import DbObject


[docs] class SecAlertProfileRow(TableRow): SecAlertProfileID: int Description: str EnableEmailByDefault: bool
[docs] class SecAlertProfile(DbObject): GET_BY_NAME_KEY = "Description" NAME = "SecAlertProfile" REPRESENTATION_ROW_CLASS = SecAlertProfileRow
[docs] def add_arguments(self, parser: _SubParsersAction): sub = parser.add_parser("get_sec_alert_profiles") sub.add_argument( "description", nargs="?", help="Q2_SecAlertProfile.Description (optional exact match)", ) sub.set_defaults(parser="get_sec_alert_profiles") sub.set_defaults(func=partial(self.get, serialize_for_cli=True)) sub = parser.add_parser("create_sec_alert_profile") sub.set_defaults(parser="create_sec_alert_profile") sub.set_defaults(func=partial(self.create)) sub.add_argument("description", help="Q2_SecAlertProfile.Description") sub.add_argument( "enable_email_by_default", type=int, choices=[0, 1], help="Q2_SecAlertProfile.EnableEmailByDefault (0 or 1)", )
[docs] async def get( self, description: str = None, serialize_for_cli: bool = False, ) -> List[SecAlertProfileRow]: sql_params = [] if description is not None: if not isinstance(description, str) or not description.strip(): raise ValueError("description must be a non-empty string") sql_params.append( ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "description", description, ) ) response = await self.call_hq( "sdk_GetSecAlertProfile", ExecuteStoredProcedure.SqlParameters(sql_params), ) if serialize_for_cli: response = self.serialize_for_cli( response, [ "SecAlertProfileID", "Description", "EnableEmailByDefault", ], ) return response
[docs] async def create(self, description: str, enable_email_by_default: int): if not isinstance(description, str) or not description.strip(): raise ValueError("description must be a non-empty string") try: enable_email_by_default = int(enable_email_by_default) except (TypeError, ValueError): raise ValueError( "enable_email_by_default must be an integer with value 0 or 1" ) if enable_email_by_default not in (0, 1): raise ValueError("enable_email_by_default must be 0 or 1") return await self.call_hq( "sdk_AddSecAlertProfile", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "description", description, ), ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Bit, "enable_email_by_default", enable_email_by_default, ), ]), )