| from pydantic import BaseModel |
| from typing import Optional, Dict, Any |
|
|
| |
| |
| |
| class ProvisionResourceIntent(BaseModel): |
| resource_type: str |
| region: str |
| size: str |
| configuration: Dict[str, Any] = {} |
| environment: str |
| requester: str |
| provenance: Dict[str, Any] = {} |
|
|
| class GrantAccessIntent(BaseModel): |
| principal: str |
| permission_level: str |
| resource_scope: str |
| justification: Optional[str] = None |
| requester: str |
| provenance: Dict[str, Any] = {} |
|
|
| class DeployConfigurationIntent(BaseModel): |
| service_name: str |
| change_scope: str |
| deployment_target: str |
| risk_level_hint: Optional[float] = None |
| configuration: Dict[str, Any] = {} |
| requester: str |
| provenance: Dict[str, Any] = {} |
| |
|
|
|
|
| def to_oss_intent(api_request): |
| if api_request.intent_type == "provision_resource": |
| return ProvisionResourceIntent( |
| resource_type=api_request.resource_type.value if hasattr(api_request.resource_type, 'value') else str(api_request.resource_type), |
| region=api_request.region, |
| size=api_request.size, |
| configuration=api_request.configuration, |
| environment=api_request.environment.value if hasattr(api_request.environment, 'value') else str(api_request.environment), |
| requester=api_request.requester, |
| provenance=api_request.provenance, |
| ) |
| elif api_request.intent_type == "grant_access": |
| return GrantAccessIntent( |
| principal=api_request.principal, |
| permission_level=api_request.permission_level.value if hasattr(api_request.permission_level, 'value') else str(api_request.permission_level), |
| resource_scope=api_request.resource_scope, |
| justification=api_request.justification, |
| requester=api_request.requester, |
| provenance=api_request.provenance, |
| ) |
| elif api_request.intent_type == "deploy_config": |
| return DeployConfigurationIntent( |
| service_name=api_request.service_name, |
| change_scope=api_request.change_scope.value if hasattr(api_request.change_scope, 'value') else str(api_request.change_scope), |
| deployment_target=api_request.deployment_target.value if hasattr(api_request.deployment_target, 'value') else str(api_request.deployment_target), |
| risk_level_hint=api_request.risk_level_hint, |
| configuration=api_request.configuration, |
| requester=api_request.requester, |
| provenance=api_request.provenance, |
| ) |
| else: |
| raise ValueError(f"Unknown intent type: {api_request.intent_type}") |