openapi: 3.2.0 info: title: Airia Web Change Request Groups API version: 1.0.0 servers: - url: https://api.airia.ai tags: - name: ChangeRequestGroups paths: /v1/governance/scenarios/groups: post: tags: - ChangeRequestGroups operationId: ChangeRequestGroups_Create2 parameters: - name: x-correlation-id in: header schema: type: string requestBody: x-name: request content: application/json: schema: $ref: '#/components/schemas/CreateChangeRequestGroupRequest' required: true x-position: 1 responses: 201: description: '' content: application/json: schema: $ref: '#/components/schemas/ChangeRequestGroupDto' 400: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 422: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Change request groups create2 x-summary-source: derived /v1/governance/scenarios/groups/{groupId}: get: tags: - ChangeRequestGroups operationId: ChangeRequestGroups_Get2 parameters: - name: groupId in: path required: true schema: type: string format: guid x-position: 1 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/ChangeRequestGroupDto' 404: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Change request groups get2 x-summary-source: derived /v1/governance/scenarios/groups/{groupId}/promote/{scenarioId}: post: tags: - ChangeRequestGroups operationId: ChangeRequestGroups_PromoteVariant2 parameters: - name: groupId in: path required: true schema: type: string format: guid x-position: 1 - name: scenarioId in: path required: true schema: type: string format: guid x-position: 2 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/ChangeRequestGroupDto' 404: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 409: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 422: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Change request groups promote variant2 x-summary-source: derived /v1/governance/scenarios/groups/{groupId}/discard: post: tags: - ChangeRequestGroups operationId: ChangeRequestGroups_DiscardGroup2 parameters: - name: groupId in: path required: true schema: type: string format: guid x-position: 1 - name: x-correlation-id in: header schema: type: string responses: 200: description: '' content: application/json: schema: $ref: '#/components/schemas/ChangeRequestGroupDto' 404: description: '' content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' summary: Change request groups discard group2 x-summary-source: derived components: schemas: ToolPatchEntry: type: object additionalProperties: false properties: stepTitle: type: - string - 'null' toolInstanceId: type: - string - 'null' toolAggregateId: type: - string - 'null' configuration: oneOf: - $ref: '#/components/schemas/JsonNode' JsonNode: type: object x-abstract: true additionalProperties: false properties: underlyingElement: {} options: oneOf: - $ref: '#/components/schemas/JsonNodeOptions' parent: oneOf: - $ref: '#/components/schemas/JsonNode' root: $ref: '#/components/schemas/JsonNode' CreateChangeRequestGroupRequest: type: object additionalProperties: false required: - assetAggregateId - changeCategory - name - risk - baseVersionId - variants properties: useCaseId: type: - string - 'null' format: guid assetAggregateId: type: string format: guid minLength: 1 changeCategory: $ref: '#/components/schemas/ChangeCategory' name: type: string maxLength: 200 minLength: 1 description: type: - string - 'null' maxLength: 2000 risk: $ref: '#/components/schemas/RiskImpact' owner: type: - string - 'null' format: guid dueDate: type: - string - 'null' format: date-time baseVersionId: type: string format: guid minLength: 1 variants: type: array items: $ref: '#/components/schemas/VariantPayloadRequest' ChangeRequestGroupStatus: type: string description: '' x-enumNames: - Comparing - Decided - Abandoned enum: - Comparing - Decided - Abandoned ChangeRequestGroupDto: type: object additionalProperties: false properties: id: type: string format: guid useCaseId: type: - string - 'null' format: guid assetAggregateId: type: string format: guid changeCategory: $ref: '#/components/schemas/ChangeCategory' name: type: string description: type: - string - 'null' risk: $ref: '#/components/schemas/RiskImpact' owner: type: - string - 'null' format: guid dueDate: type: - string - 'null' format: date-time baseVersionId: type: string format: guid status: $ref: '#/components/schemas/ChangeRequestGroupStatus' createdByUserId: type: - string - 'null' format: guid createdAt: type: - string - 'null' format: date-time updatedAt: type: - string - 'null' format: date-time variants: type: array items: $ref: '#/components/schemas/ChangeScenarioDto' ScenarioPendingActionDto: type: object additionalProperties: false properties: id: type: string format: guid type: type: string message: type: string createdAt: type: string format: date-time metadata: type: object additionalProperties: type: string ToolPatch: type: object additionalProperties: false properties: add: type: - array - 'null' items: $ref: '#/components/schemas/ToolPatchEntry' remove: type: - array - 'null' items: $ref: '#/components/schemas/ToolPatchEntry' modify: type: - array - 'null' items: $ref: '#/components/schemas/ToolPatchEntry' JsonNodeOptions: type: object additionalProperties: false properties: propertyNameCaseInsensitive: type: boolean RequiredComponentDto: type: object additionalProperties: false properties: key: type: string order: type: integer format: int32 visibleWhen: oneOf: - $ref: '#/components/schemas/ConditionNode' options: type: - object - 'null' additionalProperties: {} ChangeScenarioDto: type: object additionalProperties: false properties: id: type: string format: guid useCaseId: type: string format: guid changeRequestGroupId: type: - string - 'null' format: guid assetAggregateId: type: string format: guid changeCategory: $ref: '#/components/schemas/ChangeCategory' risk: $ref: '#/components/schemas/RiskImpact' status: $ref: '#/components/schemas/ScenarioStatus' name: type: string description: type: - string - 'null' owner: type: - string - 'null' format: guid ownerName: type: - string - 'null' dueDate: type: - string - 'null' format: date-time activityNotes: type: - string - 'null' details: oneOf: - $ref: '#/components/schemas/ChangeScenarioDetails' baseVersionId: type: - string - 'null' format: guid sourceKind: $ref: '#/components/schemas/ChangeScenarioSource' overrides: oneOf: - $ref: '#/components/schemas/ScenarioOverrides' workflowInstanceId: type: - string - 'null' format: guid workflowBranchActivationId: type: - string - 'null' format: guid createdByUserId: type: - string - 'null' format: guid createdAt: type: - string - 'null' format: date-time updatedAt: type: - string - 'null' format: date-time steps: type: array items: $ref: '#/components/schemas/ScenarioStepDto' currentStepId: type: - string - 'null' format: guid progressCurrent: type: integer format: int32 progressTotal: type: integer format: int32 pendingActions: type: array items: $ref: '#/components/schemas/ScenarioPendingActionDto' AutomationExecutionStatus: type: string description: '' x-enumNames: - Pending - Running - Completed - Failed - Skipped enum: - Pending - Running - Completed - Failed - Skipped ChangeScenarioDetails: type: object additionalProperties: false properties: modelFrom: type: - string - 'null' modelTo: type: - string - 'null' promptDiff: type: - string - 'null' guardrailThreshold: type: - number - 'null' format: double dataSourceFrom: type: - string - 'null' dataSourceTo: type: - string - 'null' configChanges: type: array items: $ref: '#/components/schemas/ConfigChange' StageDisplayMode: type: string description: '' x-enumNames: - Requirement - Summary - Informational enum: - Requirement - Summary - Informational ScenarioStepDto: type: object additionalProperties: false properties: id: type: string format: guid order: type: integer format: int32 title: type: string branchGroup: type: string status: $ref: '#/components/schemas/StageInstanceStatus' outcome: oneOf: - $ref: '#/components/schemas/StageOutcome' requirementStatus: oneOf: - $ref: '#/components/schemas/StageRequirementStatus' dependsOn: type: array items: type: string format: guid enteredAt: type: - string - 'null' format: date-time completedAt: type: - string - 'null' format: date-time gateSlaDeadline: type: - string - 'null' format: date-time completedByUserId: type: - string - 'null' format: guid requiresApproval: type: boolean genericApproval: type: boolean automations: type: array items: $ref: '#/components/schemas/AutomationSummaryDto' displaySection: oneOf: - $ref: '#/components/schemas/DisplaySectionDto' displaySectionV2: oneOf: - $ref: '#/components/schemas/DisplaySectionV2Dto' DisplaySectionItemDto: type: object additionalProperties: false properties: key: type: string order: type: integer format: int32 systemRequirement: type: boolean options: type: - object - 'null' additionalProperties: {} isRequired: type: boolean requirementReason: type: - string - 'null' ChangeCategory: type: string description: '' x-enumNames: - ModelUpgrade - PromptChange - DataSourceChange - GuardrailUpdate - PipelineChange - ConfigChange - PythonCodeChange enum: - ModelUpgrade - PromptChange - DataSourceChange - GuardrailUpdate - PipelineChange - ConfigChange - PythonCodeChange ModelOverride: type: object additionalProperties: false properties: modelId: type: string identifierType: $ref: '#/components/schemas/ModelIdentifierType' ScenarioStatus: type: string description: '' x-enumNames: - Draft - Evaluating - PendingReview - Approved - Adopted - Discarded enum: - Draft - Evaluating - PendingReview - Approved - Adopted - Discarded DisplaySectionDto: type: object additionalProperties: false properties: requiredComponents: type: array items: $ref: '#/components/schemas/RequiredComponentDto' widgets: type: array items: $ref: '#/components/schemas/WidgetDto' RiskImpact: type: string description: '' x-enumNames: - None - Low - Medium - High - Critical enum: - None - Low - Medium - High - Critical ScenarioOverrides: type: object discriminator: propertyName: kind mapping: Internal: '#/components/schemas/InternalScenarioOverrides' External: '#/components/schemas/ExternalScenarioOverrides' x-abstract: true additionalProperties: false required: - kind properties: modelOverride: oneOf: - $ref: '#/components/schemas/ModelOverride' toolOverrides: oneOf: - $ref: '#/components/schemas/ToolPatch' kind: type: string AttestationRecord: type: object additionalProperties: false properties: attested: type: boolean attestedByUserId: type: - string - 'null' format: guid attestedAt: type: - string - 'null' format: date-time ProblemDetails: type: object additionalProperties: {} properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' ChangeScenarioSource: type: string description: '' x-enumNames: - UserProposed - AutoMonitorObserved enum: - UserProposed - AutoMonitorObserved AutomationSummaryDto: type: object additionalProperties: false properties: automationId: type: string format: guid automationType: type: string timing: type: string displayName: type: - string - 'null' status: $ref: '#/components/schemas/AutomationExecutionStatus' externalJobId: type: - string - 'null' format: guid startedAt: type: - string - 'null' format: date-time completedAt: type: - string - 'null' format: date-time error: type: - string - 'null' sequence: type: - integer - 'null' format: int32 durationMs: type: - integer - 'null' format: int64 VariantPayloadRequest: type: object additionalProperties: false required: - name properties: name: type: string maxLength: 200 minLength: 1 details: oneOf: - $ref: '#/components/schemas/ChangeScenarioDetails' overrides: oneOf: - $ref: '#/components/schemas/ScenarioOverrides' ConditionNode: type: object x-abstract: true additionalProperties: false properties: type: type: string ModelIdentifierType: type: string description: '' x-enumNames: - None - Library - Project enum: - None - Library - Project WidgetDto: type: object additionalProperties: false properties: key: type: string mode: $ref: '#/components/schemas/StageDisplayMode' order: type: integer format: int32 visibleWhen: oneOf: - $ref: '#/components/schemas/ConditionNode' options: type: - object - 'null' additionalProperties: {} ConfigChange: type: object additionalProperties: false properties: key: type: string from: type: - string - 'null' to: type: - string - 'null' StageRequirementStatus: type: object additionalProperties: false properties: approvalResolution: type: - string - 'null' approvalsReceived: type: integer format: int32 approvalsRequired: type: integer format: int32 evaluationResults: type: object additionalProperties: $ref: '#/components/schemas/ThresholdResult' artifactStatus: type: object additionalProperties: type: boolean documentSlotStatus: type: object additionalProperties: type: array items: type: string artifactRequirementReasons: type: - object - 'null' additionalProperties: type: string attestationStatus: type: object additionalProperties: $ref: '#/components/schemas/AttestationRecord' approvalNotificationSentAt: type: - string - 'null' format: date-time defaultApprovalResolution: type: - string - 'null' defaultApprovalsReceived: type: integer format: int32 defaultApprovalsRequired: type: integer format: int32 requiresApprovalOverride: type: - boolean - 'null' DisplaySectionV2Dto: type: object additionalProperties: false properties: actionable: type: array items: $ref: '#/components/schemas/DisplaySectionItemDto' representational: type: array items: $ref: '#/components/schemas/DisplaySectionItemDto' ThresholdResult: type: object additionalProperties: false properties: actualValue: type: - number - 'null' format: double requiredValue: type: number format: double passed: type: boolean evaluationJobId: type: - string - 'null' format: guid evaluatedAt: type: - string - 'null' format: date-time StageOutcome: type: string description: '' x-enumNames: - NoDecision - Approved - Rejected - FlaggedForReview enum: - NoDecision - Approved - Rejected - FlaggedForReview StageInstanceStatus: type: string description: '' x-enumNames: - Pending - AwaitingSchedule - Active - AwaitingGate - AwaitingAutomation - Completed - Skipped - Regressed - Bypassed - Failed - AwaitingUserReview enum: - Pending - AwaitingSchedule - Active - AwaitingGate - AwaitingAutomation - Completed - Skipped - Regressed - Bypassed - Failed - AwaitingUserReview securitySchemes: ApiKey: type: apiKey description: API Key Authentication name: X-API-Key in: header Cookies: type: apiKey description: Cookie based Authentication name: Cookie in: header x-generator: NSwag v14.7.1.0 (NJsonSchema v11.6.1.0 (Newtonsoft.Json v13.0.0.0))