Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions onelens_backend_client_v2/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,53 @@ class AggregatedTicketsStatDetail(BaseModel):
value: float = Field(..., title="Value")


class AnalysisRequestStatus(str, Enum):
PENDING = "PENDING"
RUNNING = "RUNNING"
COMPLETED = "COMPLETED"
FAILED = "FAILED"


class AnalysisRequestMixin(BaseModel):
request_id: UUID = Field(
..., description="Unique request identifier.", title="Request Id"
)
name: str = Field(..., description="Name of the analysis request.", title="Name")
description: str = Field(
..., description="Human-readable description.", title="Description"
)
account_id: str = Field(..., description="AWS account ID.", title="Account Id")
region_id: str = Field(..., description="AWS region.", title="Region Id")
start_date: date = Field(
..., description="Analysis start date.", title="Start Date"
)
end_date: date = Field(..., description="Analysis end date.", title="End Date")
status: AnalysisRequestStatus = Field(..., description="Current request status.")
status_message: Optional[str] = Field(
None, description="Status message or error details.", title="Status Message"
)
flow_config: Optional[List] = Field(
None, description="List of flow log configs.", title="Flow Config"
)
Comment thread
pranjal-astuto marked this conversation as resolved.
created_at: datetime = Field(
..., description="Request creation timestamp.", title="Created At"
)
created_by: Optional[str] = Field(
None, description="User who created the request.", title="Created By"
)
started_at: Optional[datetime] = Field(
None, description="Processing start timestamp.", title="Started At"
)
completed_at: Optional[datetime] = Field(
None, description="Processing completion timestamp.", title="Completed At"
)
request_metadata: Optional[Dict[str, Any]] = Field(
None,
description="Arbitrary metadata from the analysis.",
title="Request Metadata",
)


class AndItem(BaseModel):
gte: Optional[List] = Field(None, title="Gte")
gt: Optional[List] = Field(None, title="Gt")
Expand Down Expand Up @@ -960,6 +1007,22 @@ class CreateActionTypePullResponse(BaseModel):
)


class CreateAnalysisRequestAPIRequest(BaseModel):
name: str = Field(..., description="Name of the analysis request.", title="Name")
description: str = Field(
..., description="Human-readable description.", title="Description"
)
account_id: str = Field(..., description="AWS account ID.", title="Account Id")
region_id: str = Field(..., description="AWS region.", title="Region Id")
start_date: date = Field(
..., description="Analysis start date.", title="Start Date"
)
end_date: date = Field(..., description="Analysis end date.", title="End Date")
flow_config: Optional[List[Dict[str, Any]]] = Field(
None, description="List of flow log configs.", title="Flow Config"
)


class CreateCURSavedViewAPIRequest(BaseModel):
name: constr(max_length=30) = Field(
..., description="Name of the saved view", title="Name"
Expand Down Expand Up @@ -2054,6 +2117,38 @@ class GetAllTenantConnectionsRequest(BaseModel):
connection_type: ConnectionType = Field(..., description="Type of the connection")


class GetAnalysisRequestsAPIRequest(BaseModel):
status_in: Optional[List[AnalysisRequestStatus]] = Field(
None, description="Filter by status values.", title="Status In"
)
account_id: Optional[str] = Field(
None, description="Filter by account ID.", title="Account Id"
)
pagination: Optional[PaginationParams] = Field(
None, description="Pagination parameters."
)


class GetAnalysisRequestsRequest(BaseModel):
status_in: Optional[List[AnalysisRequestStatus]] = Field(
None, description="Filter by status values.", title="Status In"
)
account_id: Optional[str] = Field(
None, description="Filter by account ID.", title="Account Id"
)
pagination: Optional[PaginationParams] = Field(
None, description="Pagination parameters."
)
tenant_id: UUID = Field(..., title="Tenant Id")

Comment thread
arifshekh175 marked this conversation as resolved.

class GetAnalysisRequestsResponse(BaseModel):
analysis_requests: List[AnalysisRequestMixin] = Field(
..., description="List of analysis requests.", title="Analysis Requests"
)
pagination: PaginationFields = Field(..., description="Pagination metadata.")


class GetCURDataCostTimeSeriesResponse(BaseModel):
raw_data: List = Field(..., title="Raw Data")

Expand Down Expand Up @@ -3633,6 +3728,15 @@ class ListDeltaEventConfigsResponse(BaseModel):
configs: List[DeltaEventConfigDTO] = Field(..., title="Configs")


class ListFlowLogsAPIRequest(BaseModel):
account_id: str = Field(
..., description="AWS account ID to query flow logs for.", title="Account Id"
)
region: str = Field(
..., description="AWS region to query (e.g. ap-southeast-2).", title="Region"
)


class ListSchedulerConfigsRequest(BaseModel):
service: Optional[constr(max_length=50)] = Field(None, title="Service")
action_type: Optional[constr(max_length=50)] = Field(None, title="Action Type")
Expand Down Expand Up @@ -6772,6 +6876,32 @@ class UpdateAgentRegistrationResponse(BaseModel):
pass


class UpdateAnalysisRequestRequest(BaseModel):
tenant_id: UUID = Field(..., title="Tenant Id")
request_id: UUID = Field(
..., description="ID of the request to update.", title="Request Id"
)
status: Optional[AnalysisRequestStatus] = Field(None, description="New status.")
status_message: Optional[str] = Field(
None, description="Status message or error details.", title="Status Message"
)
started_at: Optional[datetime] = Field(
None, description="Processing start timestamp.", title="Started At"
)
completed_at: Optional[datetime] = Field(
None, description="Processing completion timestamp.", title="Completed At"
)
request_metadata: Optional[Dict[str, Any]] = Field(
None, description="Updated metadata.", title="Request Metadata"
)


class UpdateAnalysisRequestResponse(BaseModel):
analysis_request: AnalysisRequestMixin = Field(
..., description="Updated analysis request."
)


class UpdateCURSavedViewAPIRequest(BaseModel):
name: Optional[constr(min_length=3)] = Field(
None, description="Name of the saved view", title="Name"
Expand Down
5 changes: 5 additions & 0 deletions onelens_backend_client_v2/rpc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,10 @@
AggregatedPoliciesServiceRpcHandler,
)

from onelens_backend_client_v2.rpc.network_flow_analysis_requests_service_rpc_handler import (
NetworkFlowAnalysisRequestsServiceRpcHandler,
)


__all__ = [
"TenantVerifyServiceRpcHandler",
Expand Down Expand Up @@ -268,4 +272,5 @@
"TenantOnboardingServiceRpcHandler",
"AggregatedTicketsServiceRpcHandler",
"AggregatedPoliciesServiceRpcHandler",
"NetworkFlowAnalysisRequestsServiceRpcHandler",
]
Loading
Loading