Source code for q2_sdk.hq.db.audit_http_headers
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 AuditHTTPHeadersRow(TableRow):
AuditID: int
ShortName: str
HeaderID: int
HeaderValue: str
[docs]
class AuditHTTPHeaders(DbObject):
"""
Represents the HTTP Headers sent by the client at login.
Things like User-Agent, URL, HTTP_COOKIE, CONTENT_TYPE
"""
REPRESENTATION_ROW_CLASS = AuditHTTPHeadersRow
[docs]
def add_arguments(self, parser: _SubParsersAction):
subparser = parser.add_parser("get_session_http_headers")
subparser.set_defaults(parser="get_session_http_headers")
subparser.set_defaults(
func=partial(self.get_session_headers, serialize_for_cli=True)
)
subparser.add_argument("session_id", help="Q2_Audit.SessionId")
[docs]
async def get_session_headers(
self, session_id, serialize_for_cli=False
) -> List[AuditHTTPHeadersRow]:
parameters = ExecuteStoredProcedure.SqlParameters([])
if session_id:
parameters = ExecuteStoredProcedure.SqlParameters([
ExecuteStoredProcedure.SqlParam(
ExecuteStoredProcedure.DataType.VarChar,
"session_id",
session_id,
)
])
response = await self.call_hq("sdk_GetSessionHTTPHeaders", parameters)
if serialize_for_cli:
response = self.serialize_for_cli(
response, ["ShortName", "AuditID", "HeaderID", "HeaderValue"]
)
return response