use super::*;
mod admin;
mod audit_evidence;
mod auth;
mod dispatch;
mod governance;
mod paging;
mod preferences;
mod reports;
mod state;
pub use dispatch::*;
pub(crate) use paging::*;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiLoginRequest {
pub principal_id: String,
pub shared_secret: String,
}
pub type ConsoleApiSession = BrowserUiSession;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiIdentityProvider {
pub provider_id: String,
pub label: String,
pub method: String,
pub enabled: bool,
pub description: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiIdentityProviderList {
pub default_provider_id: String,
pub providers: Vec<ConsoleApiIdentityProvider>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiListQuery {
pub limit: Option<usize>,
pub offset: Option<usize>,
pub prefix: Option<String>,
pub q: Option<String>,
pub sort: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiPage {
pub limit: usize,
pub offset: usize,
pub total: usize,
pub returned: usize,
pub sort: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiErrorEnvelope {
pub code: String,
pub message: String,
pub retryable: bool,
pub status: u16,
pub request_id: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiOverviewReport {
pub generated_at_epoch_seconds: u64,
pub session: ConsoleApiSession,
pub health: OpsHealthReport,
pub metrics: ConsoleMetricSummary,
pub retention_bucket_count: usize,
pub retained_version_count: usize,
pub lifecycle_bucket_count: usize,
pub lifecycle_rule_count: usize,
pub security_governance_findings: Vec<String>,
pub failure_modes: Vec<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiReportSummary {
pub id: String,
pub title: String,
pub category: String,
pub status: String,
pub endpoint: String,
pub export_endpoint: Option<String>,
pub generated_at_epoch_seconds: u64,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiReportsDashboard {
pub generated_at_epoch_seconds: u64,
pub reports: Vec<ConsoleApiReportSummary>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiBucketList {
pub page: ConsoleApiPage,
pub buckets: Vec<ConsoleBucketRow>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiBucketDetail {
pub bucket: ConsoleBucketRow,
pub policies: Vec<ConsolePolicyRow>,
pub findings: Vec<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiObjectList {
pub page: ConsoleApiPage,
pub objects: Vec<ConsoleObjectRow>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiObjectVersionRow {
pub bucket: String,
pub key: String,
pub version_id: String,
pub version_ordinal: u64,
pub version_label: String,
pub is_latest: bool,
pub delete_marker: bool,
pub content_length: usize,
pub etag: String,
pub last_modified_epoch_seconds: u64,
pub owner: String,
pub legal_hold: bool,
pub retention_mode: Option<String>,
pub retain_until_epoch_seconds: Option<u64>,
pub replication_status: Option<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiObjectVersionHistory {
pub page: ConsoleApiPage,
pub versions: Vec<ConsoleApiObjectVersionRow>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiObjectGovernanceSummary {
pub bucket: String,
pub key: String,
pub version_id: String,
pub legal_hold: bool,
pub retention_mode: Option<String>,
pub retain_until_epoch_seconds: Option<u64>,
pub retention_active: bool,
pub delete_allowed_without_bypass: bool,
pub effective_constraints: Vec<String>,
pub delete_marker: bool,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiAuditQuery {
pub limit: Option<usize>,
pub offset: Option<usize>,
pub q: Option<String>,
pub sort: Option<String>,
pub subject: Option<String>,
pub action: Option<String>,
pub resource: Option<String>,
pub outcome: Option<String>,
pub min_sequence: Option<u64>,
pub max_sequence: Option<u64>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiAuditEvents {
pub page: ConsoleApiPage,
pub events: Vec<AuditEvent>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiEvidenceItem {
pub name: String,
pub content_type: String,
pub bytes: usize,
pub record_count: usize,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiEvidenceList {
pub page: ConsoleApiPage,
pub evidence: Vec<ConsoleApiEvidenceItem>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiEvidenceExport {
pub filename: String,
pub content_type: String,
pub report: OpsEvidenceExportReport,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiTenantScope {
pub selected_tenant_id: String,
pub tenant_ids: Vec<String>,
pub scoped_request_header: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiRoleAssignmentRow {
pub principal_id: String,
pub role: String,
pub scope: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiRoleRow {
pub role: String,
pub assignment_count: usize,
pub actions: Vec<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiUserDetail {
pub principal_id: String,
pub tenant_id: String,
pub kind: String,
pub enabled: bool,
pub assignments: Vec<ConsoleApiRoleAssignmentRow>,
pub effective_permissions: Vec<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiAdminSummary {
pub tenant_scope: ConsoleApiTenantScope,
pub users: Vec<ConsoleUserRow>,
pub roles: Vec<ConsoleApiRoleRow>,
pub assignments: Vec<ConsoleApiRoleAssignmentRow>,
pub effective_permissions: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ConsoleApiPreferences {
pub values: BTreeMap<String, String>,
}