Source code for q2_sdk.hq.db.audit_http_headers
from argparse import _SubParsersAction
from functools import partial
from typing import List
from lxml.objectify import StringElement, IntElement
from q2_sdk.core.dynamic_imports import (
api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from .db_object import DbObject
from .representation_row_base import RepresentationRowBase
[docs]
class AuditHTTPHeadersRow(RepresentationRowBase):
AuditID: IntElement = "AuditID"
ShortName: StringElement = "ShortName"
HeaderID: IntElement = "HeaderID"
HeaderValue: StringElement = "HeaderValue"
[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