{"openapi":"3.1.0","info":{"title":"Superflag control-plane evaluation and advanced configuration API","version":"1.0.0"},"paths":{"/api/v1/experiments/{id}/results":{"get":{"operationId":"getExperimentResult","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}},{"name":"iterationId","in":"query","required":true,"schema":{"type":"string"}},{"name":"iterationRevision","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Pinned aggregate, inference readiness, health, freshness, and bounded diagnostics"},"404":{"description":"Experiment iteration result not found"}}}},"/api/v1/experiments/{id}/results/recompute":{"post":{"operationId":"recomputeExperimentResult","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env","iterationId","iterationRevision","analysisEngineVersion","idempotencyKey","confirm"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"iterationId":{"type":"string"},"iterationRevision":{"type":"integer","minimum":1},"analysisEngineVersion":{"type":"string","const":"descriptive-v1"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"confirm":{"type":"boolean","const":true},"priorWatermark":{"type":"object","additionalProperties":false,"required":["receivedAt","eventId"],"properties":{"receivedAt":{"type":"integer","minimum":0},"eventId":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Idempotent recompute run accepted or replayed"},"409":{"description":"Unsafe recovery, watermark mismatch, or raw-input gap"}}}},"/api/v1/experiments/{id}/results/runs/{runId}":{"get":{"operationId":"getExperimentAggregationRun","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"runId","in":"path","required":true,"schema":{"type":"string"}},{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Aggregation run state, cause, diagnostics, and remediation"},"404":{"description":"Aggregation run not found"}}}},"/api/v1/insights/query":{"post":{"operationId":"queryFeatureInsights","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env","from","to","grain","measures"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"grain":{"type":"string","enum":["hour","day"]},"dimensions":{"type":"array","maxItems":3,"items":{"type":"string"}},"measures":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string"}},"filters":{"type":"object","additionalProperties":false},"format":{"type":"string","enum":["json","csv","ndjson"],"default":"json"}}}}}},"responses":{"200":{"description":"Bounded aggregate insight rows with freshness, versions, approximation, and query cost"},"429":{"description":"Query cost, cardinality, or per-authority rate limit"}}}},"/api/v1/insights/events":{"post":{"operationId":"queryInsightEvents","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env","from","to","kinds"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"kinds":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["decision","assignment","exposure","outcome"]}},"filters":{"type":"object","additionalProperties":false},"limit":{"type":"integer","minimum":1,"maximum":100,"default":100},"cursor":{"type":"string","maxLength":4096},"format":{"type":"string","enum":["json","csv","ndjson"],"default":"json"}}}}}},"responses":{"200":{"description":"Redacted event page with opaque checkpoint, freshness, and query cost"},"429":{"description":"Per-authority event query rate limit"}}}},"/api/v1/config-versions":{"get":{"operationId":"listConfigVersions","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"Retained configuration versions and current composite state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigVersionListResponse"}}}}}}},"/api/v1/config-versions/{version}":{"get":{"operationId":"getConfigVersion","security":[{"BearerAuth":[]}],"parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"integer","minimum":0}},{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"Exact retained configuration snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigVersionResponse"}}}}}}},"/api/v1/config-versions/diff":{"get":{"operationId":"diffConfigVersions","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"from","in":"query","required":true,"schema":{"type":"integer","minimum":0}},{"name":"to","in":"query","required":true,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Deterministic structured version diff"}}}},"/api/v1/rollbacks/plan":{"post":{"operationId":"planRollback","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackRequest"}}}},"responses":{"200":{"description":"Deterministic composite rollback plan"},"409":{"description":"Composite CAS conflict"}}}},"/api/v1/rollbacks/apply":{"post":{"operationId":"applyRollback","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackApplyRequest"}}}},"responses":{"200":{"description":"Atomic audited rollback as new versions"},"409":{"description":"Plan, idempotency, or composite CAS conflict"}}}},"/api/v1/authority/propose":{"post":{"operationId":"proposeAuthority","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Immutable typed mutation proposal"},"403":{"description":"Missing propose capability"}}}},"/api/v1/authority/approve":{"post":{"operationId":"approveAuthority","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Immutable approval evidence"},"403":{"description":"Self-approval or missing approve capability"}}}},"/api/v1/authority/execute":{"post":{"operationId":"executeAuthority","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Canonical authority receipt"},"409":{"description":"Conflict, stale proposal, or readback mismatch"}}}},"/api/v1/authority/readback":{"post":{"operationId":"readbackAuthority","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Canonical receipt and observation"}}}},"/api/v1/authority/tokens":{"post":{"operationId":"createAuthorityToken","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Scoped CLI capability token"}}}},"/api/v1/metrics":{"get":{"operationId":"listMetrics","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"Environment metric heads"}}},"post":{"operationId":"createMetric","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricCreateRequest"}}}},"responses":{"201":{"description":"Created metric revision"},"409":{"description":"Key or idempotency conflict"}}}},"/api/v1/metrics/{id}":{"get":{"operationId":"getMetric","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"revision","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Metric head or exact immutable revision"},"404":{"description":"Metric revision not found"}}}},"/api/v1/metrics/{id}/revisions":{"get":{"operationId":"listMetricRevisions","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"appId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"env","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"Complete immutable metric revision history"}}},"post":{"operationId":"reviseMetric","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricReviseRequest"}}}},"responses":{"200":{"description":"Appended metric revision"},"409":{"description":"Metric revision CAS conflict"}}}},"/api/v1/experiments":{"get":{"operationId":"listExperiments","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment definitions"}}},"post":{"operationId":"createExperiment","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentCreateRequest"}}}},"responses":{"201":{"description":"Created experiment"},"409":{"description":"Idempotency or key conflict"}}}},"/api/v1/experiments/{id}":{"get":{"operationId":"getExperiment","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Experiment definition and current iteration"}}},"patch":{"operationId":"updateExperiment","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentMutationRequest"}}}},"responses":{"200":{"description":"Updated experiment"},"409":{"description":"CAS conflict"}}}},"/api/v1/experiments/{id}/transition":{"post":{"operationId":"transitionExperiment","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentMutationRequest"}}}},"responses":{"200":{"description":"Lifecycle transition"}}}},"/api/v1/experiments/{id}/ramp":{"post":{"operationId":"rampExperiment","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentMutationRequest"}}}},"responses":{"200":{"description":"Assignment-preserving allocation ramp"}}}},"/api/v1/experiments/{id}/iterate":{"post":{"operationId":"iterateExperiment","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentMutationRequest"}}}},"responses":{"200":{"description":"Paused experiment re-salted into a new running population"}}}},"/api/v1/events/batch":{"post":{"operationId":"ingestFeatureEvents","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryBatchRequest"}}}},"responses":{"200":{"description":"Ordered per-event ingestion results"},"400":{"description":"Invalid batch envelope"},"401":{"description":"Invalid environment credential"},"413":{"description":"Batch body too large"},"429":{"description":"Ordered partial results with retry guidance"},"503":{"description":"Retryable storage failure"}}}},"/api/v1/telemetry/exports":{"get":{"operationId":"listRawTelemetryExportDestinations","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string","enum":["active","paused","disabled"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed webhook export destinations"}}},"post":{"operationId":"createRawTelemetryExportDestination","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RawTelemetryExportCreateRequest"}}}},"responses":{"201":{"description":"Destination created with one-time signing secret"},"409":{"description":"Idempotency key reused with different semantics"}}}},"/api/v1/telemetry/exports/{id}":{"get":{"operationId":"getRawTelemetryExportDestination","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Destination and health diagnostics"}}},"patch":{"operationId":"updateRawTelemetryExportDestination","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RawTelemetryExportPatchRequest"}}}},"responses":{"200":{"description":"Updated destination"},"409":{"description":"Destination version conflict"}}}},"/api/v1/telemetry/exports/{id}/rotate-secret":{"post":{"operationId":"rotateRawTelemetryExportSecret","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env","version"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"version":{"type":"integer","minimum":1}}}}}},"responses":{"200":{"description":"Rotated one-time signing secret"}}}},"/api/v1/telemetry/exports/{id}/backfills":{"post":{"operationId":"createRawTelemetryExportBackfill","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env","from","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"idempotencyKey":{"type":"string","minLength":16}}}}}},"responses":{"202":{"description":"Bounded retention backfill scheduled"}}}},"/api/v1/telemetry/exports/{id}/deliveries":{"get":{"operationId":"listRawTelemetryExportDeliveries","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","delivering","delivered","failed","expired"]}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded delivery diagnostics"}}}},"/api/v1/telemetry/exports/{id}/deliveries/{deliveryId}/retry":{"post":{"operationId":"retryRawTelemetryExportDelivery","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"deliveryId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["appId","env"],"properties":{"appId":{"type":"string"},"env":{"type":"string"}}}}}},"responses":{"202":{"description":"Eligible retained delivery scheduled for retry"}}}},"/api/v1/telemetry/erasures":{"post":{"operationId":"requestTelemetrySubjectErasure","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryErasureRequest"}}}},"responses":{"202":{"description":"Erasure scheduled with an opaque receipt"},"401":{"description":"Invalid management credential"},"403":{"description":"Credential does not own the app"},"503":{"description":"Telemetry identity service unavailable"}}},"get":{"operationId":"getTelemetrySubjectErasure","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"env","in":"query","required":true,"schema":{"type":"string"}},{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Non-identifying erasure status receipt"},"404":{"description":"Erasure receipt not found"}}}},"/api/v1/changes":{"get":{"operationId":"listConfigurationAndExperimentChanges","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","required":true,"schema":{"type":"string"}},{"name":"id","in":"query","schema":{"type":"string"}},{"name":"env","in":"query","schema":{"type":"string"}},{"name":"operation","in":"query","schema":{"type":"string"}},{"name":"source","in":"query","schema":{"type":"string"}},{"name":"resourceType","in":"query","schema":{"type":"string"}},{"name":"resourceId","in":"query","schema":{"type":"string"}},{"name":"authorityType","in":"query","schema":{"type":"string"}},{"name":"userId","in":"query","schema":{"type":"string"}},{"name":"keyFingerprint","in":"query","schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Filtered append-only change records"}}}},"/api/v1/advanced-config":{"get":{"operationId":"getAdvancedConfig","security":[{"BearerAuth":[]}],"parameters":[{"name":"appId","in":"query","schema":{"type":"string"}},{"name":"env","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Versioned core configuration with TTL and ETag"},"304":{"description":"Authorization-scoped config is unchanged"},"401":{"description":"Missing, invalid, or revoked credential"},"429":{"description":"Monthly environment sync quota exceeded"},"503":{"description":"Config sync metering unavailable"}}}},"/api/v1/advanced-config/impact":{"post":{"operationId":"previewAdvancedConfigurationImpact","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedImpactRequest"}}}},"responses":{"200":{"description":"Deterministic affected flags, dependencies, and visibility impact"},"400":{"description":"Invalid advanced resources"}}}},"/api/v1/advanced-config/inspect":{"post":{"operationId":"inspectAdvancedConfiguration","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigInspectionRequest"}}}},"responses":{"200":{"description":"Explicit-time evaluation, segment, dependency, impact, or simulation inspection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigInspectionResponse"}}}},"400":{"description":"Invalid strict inspection request"},"409":{"description":"Proposed config version conflict"},"413":{"description":"Inspection request exceeds 64 KiB"}}}},"/api/v1/cleanup":{"post":{"operationId":"cleanupReadiness","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanupRequest"}}}},"responses":{"200":{"description":"Inventory, reconcile, readiness, and staged cleanup plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanupResponse"}}}},"400":{"description":"Invalid cleanup request"},"403":{"description":"Forbidden"},"404":{"description":"Environment not found"},"413":{"description":"Cleanup request exceeds 256 KiB"}}}},"/api/v1/evaluate":{"post":{"operationId":"evaluateFlag","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteEvaluationRequest"}}}},"responses":{"200":{"description":"Rich evaluation details"}}}},"/api/v1/flags/bulk":{"patch":{"operationId":"atomicBulkApply","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkApplyRequest"}}}},"responses":{"200":{"description":"Atomic apply or idempotent replay"},"409":{"description":"Version or idempotency conflict"}}}},"/api/ofrep/v1/evaluate/flags/{key}":{"post":{"operationId":"ofrepEvaluateFlag","security":[{"BearerAuth":[]},{"ApiKeyAuth":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfrepEvaluationRequest"}}}},"responses":{"200":{"description":"OFREP evaluation success"}}}},"/api/ofrep/v1/evaluate/flags":{"post":{"operationId":"ofrepEvaluateFlags","security":[{"BearerAuth":[]},{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfrepEvaluationRequest"}}}},"responses":{"200":{"description":"OFREP bulk evaluation success"},"304":{"description":"Not modified"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"MetricRevisionReference":{"type":"object","additionalProperties":false,"required":["key","revision"],"properties":{"key":{"type":"string","minLength":1,"maxLength":128},"revision":{"type":"integer","minimum":1}}},"MetricDefinition":{"type":"object","additionalProperties":false,"required":["schemaVersion","owner","eventKey","kind","visibility","randomizationUnit","desiredDirection","attributionWindowSeconds","filters"],"properties":{"schemaVersion":{"const":1},"name":{"type":"string","minLength":1,"maxLength":256},"description":{"type":"string","minLength":1,"maxLength":2000},"owner":{"type":"string","minLength":1,"maxLength":256},"eventKey":{"type":"string","minLength":1,"maxLength":128},"kind":{"enum":["conversion","count","sum","mean","ratio"]},"visibility":{"enum":["server","client"]},"randomizationUnit":{"type":"object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"const":"subject"}}},"desiredDirection":{"enum":["increase","decrease"]},"unit":{"type":"string","minLength":1,"maxLength":64},"attributionWindowSeconds":{"type":"integer","minimum":1,"maximum":604800},"filters":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["dimension","operator","values"],"properties":{"dimension":{"type":"string","minLength":1,"maxLength":128},"operator":{"enum":["eq","in"]},"values":{"type":"array","minItems":1,"maxItems":20,"items":{"type":["string","number","boolean"]}}}}},"numerator":{"$ref":"#/components/schemas/MetricRevisionReference"},"denominator":{"$ref":"#/components/schemas/MetricRevisionReference"}}},"MetricCreateRequest":{"type":"object","additionalProperties":false,"required":["appId","env","key","definition","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"key":{"type":"string"},"definition":{"$ref":"#/components/schemas/MetricDefinition"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"source":{"enum":["cli","api","agent"],"default":"api"},"reason":{"type":"string","maxLength":1000},"dryRun":{"type":"boolean","default":false}}},"MetricReviseRequest":{"type":"object","additionalProperties":false,"required":["appId","env","metricRevision","definition","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"metricRevision":{"type":"integer","minimum":1},"definition":{"$ref":"#/components/schemas/MetricDefinition"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"source":{"enum":["cli","api","agent"],"default":"api"},"reason":{"type":"string","maxLength":1000},"dryRun":{"type":"boolean","default":false}}},"RawTelemetryExportCreateRequest":{"type":"object","additionalProperties":false,"required":["appId","env","type","url","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"type":{"const":"signed_webhook"},"url":{"type":"string","format":"uri"},"filters":{"type":"object","additionalProperties":false},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128}}},"RawTelemetryExportPatchRequest":{"type":"object","additionalProperties":false,"required":["appId","env","version"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"version":{"type":"integer","minimum":1},"status":{"type":"string","enum":["active","paused","disabled"]},"url":{"type":"string","format":"uri"},"filters":{"type":"object","additionalProperties":false}}},"ExperimentMutationRequest":{"type":"object","additionalProperties":true,"required":["appId","env","experimentVersion","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"experimentVersion":{"type":"integer","minimum":1},"expectedConfigVersion":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"source":{"enum":["cli","api","agent"]},"reason":{"type":"string","maxLength":1000},"dryRun":{"type":"boolean"}}},"ExperimentCreateRequest":{"type":"object","additionalProperties":true,"required":["appId","env","key","hypothesis","owner","flagKey","audience","assignmentUnit","primaryMetric","intendedDurationDays","sampleTarget","allocation","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"key":{"type":"string"},"expectedConfigVersion":{"type":"integer","minimum":0},"hypothesis":{"type":"string"},"owner":{"type":"string"},"flagKey":{"type":"string"},"audience":{"type":"object"},"assignmentUnit":{"type":"object"},"primaryMetric":{"type":"object"},"intendedDurationDays":{"type":"integer","minimum":1},"sampleTarget":{"type":"integer","minimum":1},"allocation":{"type":"array","minItems":2,"items":{"$ref":"#/components/schemas/WeightedVariation"}},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"dryRun":{"type":"boolean"}}},"RollbackState":{"type":"object","additionalProperties":false,"required":["configVersion","experiments"],"properties":{"configVersion":{"type":"integer","minimum":0},"experiments":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["id","experimentVersion"],"properties":{"id":{"type":"string"},"experimentVersion":{"type":"integer","minimum":1}}}}}},"ConfigVersionSummary":{"type":"object","additionalProperties":false,"required":["configVersion","createdAt","compositeAvailable","current"],"properties":{"configVersion":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"note":{"type":"string"},"compositeAvailable":{"type":"boolean"},"current":{"type":"boolean"}}},"ExperimentVersionSummary":{"type":"object","additionalProperties":false,"required":["experimentVersion","createdAt","current"],"properties":{"experimentVersion":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"current":{"type":"boolean"}}},"ConfigVersionListResponse":{"type":"object","additionalProperties":false,"required":["apiVersion","versions","current","experimentVersions"],"properties":{"apiVersion":{"const":1},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ConfigVersionSummary"}},"current":{"$ref":"#/components/schemas/RollbackState"},"experimentVersions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","versions"],"properties":{"id":{"type":"string"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentVersionSummary"}}}}}}},"ConfigVersionResponse":{"type":"object","additionalProperties":false,"required":["apiVersion","version"],"properties":{"apiVersion":{"const":1},"version":{"type":"object","additionalProperties":false,"required":["configVersion","envId","state","snapshot","snapshotHash","createdAt"],"properties":{"configVersion":{"type":"integer","minimum":0},"envId":{"type":"string"},"state":{"$ref":"#/components/schemas/RollbackState"},"snapshot":{"type":"object"},"snapshotHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"createdAt":{"type":"string","format":"date-time"}}}}},"RollbackRequest":{"type":"object","additionalProperties":false,"required":["appId","env","source","ifCurrent","idempotencyKey"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"source":{"$ref":"#/components/schemas/RollbackState"},"ifCurrent":{"$ref":"#/components/schemas/RollbackState"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"sourceType":{"enum":["cli","api","agent"]},"reason":{"type":"string","maxLength":1000}}},"RollbackApplyRequest":{"type":"object","additionalProperties":false,"required":["appId","env","source","ifCurrent","idempotencyKey","planHash"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"source":{"$ref":"#/components/schemas/RollbackState"},"ifCurrent":{"$ref":"#/components/schemas/RollbackState"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128},"sourceType":{"enum":["cli","api","agent"]},"reason":{"type":"string","maxLength":1000},"planHash":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"TelemetryErasureRequest":{"type":"object","additionalProperties":false,"required":["appId","env","namespace","subjectId"],"properties":{"appId":{"type":"string","minLength":1},"env":{"type":"string","minLength":1,"maxLength":63},"namespace":{"type":"string","minLength":1,"maxLength":96},"subjectId":{"type":"string","pattern":"^psn_[A-Za-z0-9_-]{16,96}$"}}},"TelemetryBatchRequest":{"type":"object","additionalProperties":false,"required":["schemaVersion","events"],"properties":{"schemaVersion":{"const":1},"events":{"type":"array","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/FeatureEvent"}}}},"FeatureEvent":{"type":"object","additionalProperties":false,"required":["schemaVersion","id","kind","source","flagKey","variation","configVersion","reason","timestamp","sdk","subject"],"properties":{"schemaVersion":{"const":1},"id":{"type":"string","minLength":1,"maxLength":128},"kind":{"type":"string","enum":["decision","assignment","exposure","outcome"]},"source":{"type":"object","additionalProperties":false,"required":["app","environment"],"properties":{"app":{"type":"string","minLength":1,"maxLength":96},"environment":{"type":"string","minLength":1,"maxLength":96}}},"flagKey":{"type":"string"},"variation":{"type":"string"},"configVersion":{"type":"integer","minimum":0},"reason":{"type":"string","enum":["OFF","TARGETING_MATCH","SPLIT","FALLTHROUGH","PREREQUISITE_FAILED","SCHEDULED_OUT","DEFAULT"]},"timestamp":{"type":"string","format":"date-time"},"sdk":{"type":"object","additionalProperties":false,"required":["name","version","platform"],"properties":{"name":{"type":"string","minLength":1,"maxLength":96},"version":{"type":"string","minLength":1,"maxLength":96},"platform":{"type":"string","enum":["browser","node","react-native","expo","remote"]}}},"subject":{"type":"object","additionalProperties":false,"required":["id","namespace","revision","state"],"properties":{"id":{"type":"string","pattern":"^psn_[A-Za-z0-9_-]{16,96}$"},"namespace":{"type":"string","minLength":1,"maxLength":96},"revision":{"type":"integer","minimum":1},"state":{"type":"string","enum":["anonymous","authenticated"]}}},"experiment":{"type":"object","additionalProperties":false,"required":["experimentId","iterationId"],"properties":{"experimentId":{"type":"string","minLength":1,"maxLength":128},"iterationId":{"type":"string","minLength":1,"maxLength":128}}},"dimensions":{"type":"object","maxProperties":16,"additionalProperties":{"oneOf":[{"type":"string","maxLength":64},{"type":"number"},{"type":"boolean"}]}},"exposureId":{"type":"string"},"metric":{"type":"object","additionalProperties":false,"required":["key","revision"],"properties":{"key":{"type":"string","minLength":1,"maxLength":96},"revision":{"type":"integer","minimum":1}}},"value":{"oneOf":[{"type":"boolean"},{"type":"number"}]}},"allOf":[{"if":{"properties":{"kind":{"const":"assignment"}}},"then":{"required":["experiment"]}},{"if":{"properties":{"kind":{"const":"outcome"}}},"then":{"required":["exposureId","metric","value"]}}]},"EvaluationContext":{"type":"object","required":["targetingKey"],"properties":{"targetingKey":{"type":"string","minLength":1}},"additionalProperties":true},"RemoteEvaluationRequest":{"type":"object","required":["flagKey","context","defaultValue"],"properties":{"flagKey":{"type":"string","minLength":1},"context":{"type":"object","required":["targetingKey"],"properties":{"targetingKey":{"type":"string","minLength":1},"attributes":{"type":"object","additionalProperties":true}}},"defaultValue":{},"now":{"oneOf":[{"type":"string","format":"date-time"},{"type":"number"}]}}},"OfrepEvaluationRequest":{"type":"object","required":["context"],"properties":{"context":{"$ref":"#/components/schemas/EvaluationContext"}}},"BulkApplyRequest":{"type":"object","required":["appId","env","ifVersion","idempotencyKey"],"properties":{"appId":{"type":"string","minLength":1},"env":{"type":"string","minLength":1},"updates":{"type":"array","maxItems":500},"advancedConfig":{"$ref":"#/components/schemas/AdvancedConfigurationDocument"},"privacy":{"type":"object","properties":{"allowedContextAttributes":{"type":"array","items":{"type":"string"}}}},"ifVersion":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":16,"maxLength":128}}},"Schedule":{"type":"object","additionalProperties":false,"properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}},"WeightedVariation":{"type":"object","additionalProperties":false,"required":["variation","weight"],"properties":{"variation":{"type":"string","minLength":1},"weight":{"type":"integer","minimum":0,"maximum":100000}}},"Rollout":{"type":"object","additionalProperties":false,"required":["variations"],"properties":{"variations":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/WeightedVariation"}},"bucketBy":{"type":"string","minLength":1},"salt":{"type":"string"}}},"Serve":{"oneOf":[{"type":"object","additionalProperties":false,"required":["variation"],"properties":{"variation":{"type":"string","minLength":1}}},{"type":"object","additionalProperties":false,"required":["rollout"],"properties":{"rollout":{"$ref":"#/components/schemas/Rollout"}}},{"type":"object","additionalProperties":false,"required":["progressive"],"properties":{"progressive":{"type":"object","additionalProperties":false,"required":["start","end","from","to"],"properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"from":{"$ref":"#/components/schemas/Rollout"},"to":{"$ref":"#/components/schemas/Rollout"}}}}}]},"TargetingExpression":{"type":"object","description":"Recursive all, any, not, match, or segment targeting expression","required":["op"],"properties":{"op":{"type":"string","enum":["all","any","not","match","segment"]},"expressions":{"type":"array","items":{"$ref":"#/components/schemas/TargetingExpression"}},"expression":{"$ref":"#/components/schemas/TargetingExpression"},"attribute":{"type":"string"},"operator":{"type":"string"},"value":{},"segment":{"type":"string"},"negate":{"type":"boolean"}}},"AdvancedFlagResource":{"type":"object","additionalProperties":false,"required":["type","description","tags","owner","lifecycle","enabled","variations","offVariation","fallthrough"],"properties":{"type":{"type":"string","enum":["boolean","string","number","object"]},"description":{"type":"string","minLength":1},"tags":{"type":"array","items":{"type":"string"}},"owner":{"type":"string","minLength":1},"lifecycle":{"type":"string","enum":["draft","active","deprecated","archived"]},"enabled":{"type":"boolean"},"variations":{"type":"object","additionalProperties":true},"offVariation":{"type":"string"},"fallthrough":{"$ref":"#/components/schemas/Serve"},"prerequisites":{"type":"array","items":{"type":"object"}},"rules":{"type":"array","items":{"type":"object","required":["id","when","serve"],"properties":{"id":{"type":"string"},"when":{"$ref":"#/components/schemas/TargetingExpression"},"serve":{"$ref":"#/components/schemas/Serve"},"schedule":{"$ref":"#/components/schemas/Schedule"}}}},"schedule":{"$ref":"#/components/schemas/Schedule"},"visibility":{"type":"string","enum":["server","client"]},"metadata":{"type":"object","additionalProperties":true}}},"AdvancedSegmentResource":{"type":"object","additionalProperties":false,"properties":{"included":{"type":"array","items":{"type":"string"}},"excluded":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"$ref":"#/components/schemas/TargetingExpression"}},"schedule":{"$ref":"#/components/schemas/Schedule"},"visibility":{"type":"string","enum":["server","client"]},"description":{"type":"string"}}},"AdvancedConfigurationDocument":{"type":"object","additionalProperties":false,"required":["schemaVersion","flags"],"properties":{"schemaVersion":{"const":1},"source":{"type":"object","required":["app","environment"],"properties":{"app":{"type":"string"},"environment":{"type":"string"}}},"configVersion":{"type":"integer","minimum":0},"flags":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AdvancedFlagResource"}},"segments":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AdvancedSegmentResource"}},"metadata":{"type":"object","additionalProperties":true}}},"InspectionJsonValue":{"oneOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/InspectionJsonValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/InspectionJsonValue"}}]},"InspectionFallback":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/InspectionJsonValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/InspectionJsonValue"}}]},"InspectionContext":{"type":"object","additionalProperties":false,"required":["targetingKey"],"properties":{"targetingKey":{"type":"string","minLength":1,"maxLength":512},"attributes":{"type":"object","maxProperties":100,"propertyNames":{"minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/InspectionJsonValue"}}}},"InspectionResource":{"type":"object","additionalProperties":false,"required":["kind","key"],"properties":{"kind":{"enum":["flag","segment"]},"key":{"type":"string","minLength":1,"maxLength":256}}},"InspectionCurrentDocument":{"type":"object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"const":"current"}}},"InspectionProposedDocument":{"type":"object","additionalProperties":false,"required":["kind","advancedConfig","ifVersion"],"properties":{"kind":{"const":"proposed"},"advancedConfig":{"$ref":"#/components/schemas/AdvancedConfigurationDocument"},"ifVersion":{"type":"integer","minimum":0}}},"InspectionDocument":{"oneOf":[{"$ref":"#/components/schemas/InspectionCurrentDocument"},{"$ref":"#/components/schemas/InspectionProposedDocument"}],"discriminator":{"propertyName":"kind"}},"InspectionRequestBase":{"type":"object","required":["schemaVersion","appId","env"],"properties":{"schemaVersion":{"const":1},"appId":{"type":"string","minLength":1,"maxLength":256},"env":{"type":"string","minLength":1,"maxLength":256}}},"ConfigInspectionExplainRequest":{"allOf":[{"$ref":"#/components/schemas/InspectionRequestBase"},{"type":"object","required":["operation","document","flagKey","context","fallback","now"],"properties":{"operation":{"const":"explain"},"document":{"$ref":"#/components/schemas/InspectionDocument"},"flagKey":{"type":"string","minLength":1,"maxLength":256},"context":{"$ref":"#/components/schemas/InspectionContext"},"fallback":{"$ref":"#/components/schemas/InspectionFallback"},"now":{"type":"string","format":"date-time"}}}],"unevaluatedProperties":false},"ConfigInspectionSegmentRequest":{"allOf":[{"$ref":"#/components/schemas/InspectionRequestBase"},{"type":"object","required":["operation","document","segmentId","context","now"],"properties":{"operation":{"const":"segment"},"document":{"$ref":"#/components/schemas/InspectionDocument"},"segmentId":{"type":"string","minLength":1,"maxLength":256},"context":{"$ref":"#/components/schemas/InspectionContext"},"now":{"type":"string","format":"date-time"}}}],"unevaluatedProperties":false},"InspectionPathsRequestBase":{"allOf":[{"$ref":"#/components/schemas/InspectionRequestBase"},{"type":"object","required":["document","resource"],"properties":{"document":{"$ref":"#/components/schemas/InspectionDocument"},"resource":{"$ref":"#/components/schemas/InspectionResource"}}}]},"ConfigInspectionDependenciesRequest":{"allOf":[{"$ref":"#/components/schemas/InspectionPathsRequestBase"},{"type":"object","required":["operation"],"properties":{"operation":{"const":"dependencies"}}}],"unevaluatedProperties":false},"ConfigInspectionImpactsRequest":{"allOf":[{"$ref":"#/components/schemas/InspectionPathsRequestBase"},{"type":"object","required":["operation"],"properties":{"operation":{"const":"impacts"}}}],"unevaluatedProperties":false},"InspectionScenario":{"type":"object","additionalProperties":false,"required":["id","flagKey","context","fallback","now"],"properties":{"id":{"type":"string","minLength":1,"maxLength":256},"flagKey":{"type":"string","minLength":1,"maxLength":256},"context":{"$ref":"#/components/schemas/InspectionContext"},"fallback":{"$ref":"#/components/schemas/InspectionFallback"},"now":{"type":"string","format":"date-time"}}},"ConfigInspectionSimulationRequest":{"allOf":[{"$ref":"#/components/schemas/InspectionRequestBase"},{"type":"object","required":["operation","proposal","scenarios"],"properties":{"operation":{"const":"simulate"},"proposal":{"type":"object","additionalProperties":false,"required":["advancedConfig","ifVersion"],"properties":{"advancedConfig":{"$ref":"#/components/schemas/AdvancedConfigurationDocument"},"ifVersion":{"type":"integer","minimum":0}}},"scenarios":{"type":"array","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/InspectionScenario"}}}}],"unevaluatedProperties":false},"ConfigInspectionRequest":{"oneOf":[{"$ref":"#/components/schemas/ConfigInspectionExplainRequest"},{"$ref":"#/components/schemas/ConfigInspectionSegmentRequest"},{"$ref":"#/components/schemas/ConfigInspectionDependenciesRequest"},{"$ref":"#/components/schemas/ConfigInspectionImpactsRequest"},{"$ref":"#/components/schemas/ConfigInspectionSimulationRequest"}],"discriminator":{"propertyName":"operation"}},"InspectionTarget":{"type":"object","additionalProperties":false,"required":["appId","env","currentVersion"],"properties":{"appId":{"type":"string"},"env":{"type":"string"},"currentVersion":{"type":"integer","minimum":0},"proposedVersion":{"type":"integer","minimum":1}}},"InspectionExplanation":{"type":"object","additionalProperties":false,"required":["schemaVersion","source","configVersion","flagKey","now","stages"],"properties":{"schemaVersion":{"const":1},"source":{"type":"object","additionalProperties":false,"required":["app","environment"],"properties":{"app":{"type":"string"},"environment":{"type":"string"}}},"configVersion":{"type":"integer","minimum":0},"flagKey":{"type":"string"},"now":{"type":"string","format":"date-time"},"stages":{"type":"array","minItems":4,"maxItems":4,"prefixItems":[{"type":"object","properties":{"stage":{"const":"eligibility"}},"required":["stage","eligible","reason","prerequisites"]},{"type":"object","properties":{"stage":{"const":"assignment"}},"required":["stage","attempted","serve"]},{"type":"object","properties":{"stage":{"const":"evaluation"},"details":{"type":"object"}},"required":["stage","details"]},{"type":"object","properties":{"stage":{"const":"exposure-candidate"}},"required":["stage","candidate","flagKey","configVersion","reason"]}]}}},"InspectionSegmentResult":{"type":"object","additionalProperties":false,"required":["segmentId","matched","now","segmentIds"],"properties":{"segmentId":{"type":"string"},"matched":{"type":"boolean"},"now":{"type":"string","format":"date-time"},"segmentIds":{"type":"array","items":{"type":"string"}},"error":{"const":"SEGMENT_NOT_FOUND"},"errorCode":{"type":"string"},"errorMessage":{"type":"string"}}},"InspectionPath":{"type":"object","additionalProperties":false,"required":["resources","relationships"],"properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/InspectionResource"}},"relationships":{"type":"array","items":{"enum":["flag_prerequisite","flag_segment","segment_segment"]}}}},"InspectionSimulationResult":{"type":"object","additionalProperties":false,"required":["id","changed","before","after"],"properties":{"id":{"type":"string"},"changed":{"type":"boolean"},"before":{"$ref":"#/components/schemas/InspectionExplanation"},"after":{"$ref":"#/components/schemas/InspectionExplanation"}}},"InspectionResponseBase":{"type":"object","required":["apiVersion","inspectionVersion","target"],"properties":{"apiVersion":{"const":1},"inspectionVersion":{"const":1},"target":{"$ref":"#/components/schemas/InspectionTarget"}}},"ConfigInspectionExplainResponse":{"allOf":[{"$ref":"#/components/schemas/InspectionResponseBase"},{"type":"object","required":["operation","result"],"properties":{"operation":{"const":"explain"},"result":{"$ref":"#/components/schemas/InspectionExplanation"}}}],"unevaluatedProperties":false},"ConfigInspectionSegmentResponse":{"allOf":[{"$ref":"#/components/schemas/InspectionResponseBase"},{"type":"object","required":["operation","result"],"properties":{"operation":{"const":"segment"},"result":{"$ref":"#/components/schemas/InspectionSegmentResult"}}}],"unevaluatedProperties":false},"ConfigInspectionDependenciesResponse":{"allOf":[{"$ref":"#/components/schemas/InspectionResponseBase"},{"type":"object","required":["operation","result"],"properties":{"operation":{"const":"dependencies"},"result":{"type":"array","items":{"$ref":"#/components/schemas/InspectionPath"}}}}],"unevaluatedProperties":false},"ConfigInspectionImpactsResponse":{"allOf":[{"$ref":"#/components/schemas/InspectionResponseBase"},{"type":"object","required":["operation","result"],"properties":{"operation":{"const":"impacts"},"result":{"type":"array","items":{"$ref":"#/components/schemas/InspectionPath"}}}}],"unevaluatedProperties":false},"ConfigInspectionSimulationResponse":{"allOf":[{"$ref":"#/components/schemas/InspectionResponseBase"},{"type":"object","required":["operation","result"],"properties":{"operation":{"const":"simulate"},"result":{"type":"array","items":{"$ref":"#/components/schemas/InspectionSimulationResult"}}}}],"unevaluatedProperties":false},"ConfigInspectionResponse":{"oneOf":[{"$ref":"#/components/schemas/ConfigInspectionExplainResponse"},{"$ref":"#/components/schemas/ConfigInspectionSegmentResponse"},{"$ref":"#/components/schemas/ConfigInspectionDependenciesResponse"},{"$ref":"#/components/schemas/ConfigInspectionImpactsResponse"},{"$ref":"#/components/schemas/ConfigInspectionSimulationResponse"}],"discriminator":{"propertyName":"operation"}},"CleanupRequest":{"type":"object","additionalProperties":false,"required":["appId","environments"],"properties":{"operation":{"type":"string","enum":["inventory","reconcile","readiness","plan"]},"appId":{"type":"string","minLength":1,"maxLength":256},"environments":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","minLength":1,"maxLength":256}},"manifests":{"type":"array","items":{"$ref":"#/components/schemas/ConsumerManifest"}},"scans":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryScan"}},"flagKeys":{"type":"array","items":{"type":"string","minLength":1,"maxLength":256}},"now":{"type":"string","format":"date-time"},"evidenceWindowMs":{"type":"integer","minimum":1,"maximum":7776000000}}},"ConsumerManifest":{"type":"object","additionalProperties":false,"required":["schemaVersion","kind","consumer","flags"],"properties":{"schemaVersion":{"const":1},"kind":{"const":"SuperflagConsumerManifest"},"consumer":{"type":"object","additionalProperties":false,"required":["package","repository"],"properties":{"package":{"type":"string"},"repository":{"type":"string"},"commit":{"type":"string"}}},"flags":{"type":"array","items":{"type":"object"}}}},"RepositoryScan":{"type":"object","additionalProperties":false,"required":["schemaVersion","kind","repository","commit","coverage","references","unsupported"],"properties":{"schemaVersion":{"const":1},"kind":{"const":"SuperflagRepositoryScan"},"repository":{"type":"string"},"commit":{"type":"string"},"coverage":{"enum":["complete","partial","unknown"]},"references":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["key","repository","commit","path","line","form"],"properties":{"key":{"type":"string"},"repository":{"type":"string"},"commit":{"type":"string"},"path":{"type":"string"},"line":{"type":"integer","minimum":1},"form":{"enum":["literal","generated"]}}}},"unsupported":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["repository","commit","path","line","reasonCode"],"properties":{"repository":{"type":"string"},"commit":{"type":"string"},"path":{"type":"string"},"line":{"type":"integer","minimum":1},"reasonCode":{"const":"dynamic_key_construction"}}}}}},"CleanupResponse":{"type":"object","additionalProperties":false,"required":["apiVersion","report"],"properties":{"apiVersion":{"const":1},"report":{"$ref":"#/components/schemas/CleanupReport"}}},"CleanupReport":{"type":"object","additionalProperties":false,"required":["schemaVersion","kind","operation","target","now","evidenceWindow","repositories","flags","findings"],"properties":{"schemaVersion":{"const":1},"kind":{"const":"SuperflagCleanupReport"},"operation":{"enum":["inventory","reconcile","readiness","plan"]},"target":{"type":"object"},"now":{"type":"string","format":"date-time"},"evidenceWindow":{"type":"object"},"repositories":{"type":"array","items":{"type":"object"}},"flags":{"type":"array","items":{"type":"object"}},"findings":{"type":"array","items":{"type":"object"}}}},"AdvancedImpactRequest":{"type":"object","additionalProperties":false,"required":["appId","env","advancedConfig"],"properties":{"appId":{"type":"string","minLength":1},"env":{"type":"string","minLength":1},"advancedConfig":{"$ref":"#/components/schemas/AdvancedConfigurationDocument"}}}}}}