Skip to content

Commit 6e2d95d

Browse files
committed
driftSpec.yaml added
1 parent 6ebb767 commit 6e2d95d

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed

specs/ent-only/driftSpec.yaml

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Drift Detection API
4+
description: API to detect configuration drifts in an application environment.
5+
version: 1.0.0
6+
servers:
7+
- url: http://localhost:8080
8+
description: Local server
9+
10+
paths:
11+
/orchestrator/drift/managed-resources:
12+
get:
13+
summary: Get Managed Resources
14+
operationId: getManagedResources
15+
parameters:
16+
- name: app-id
17+
in: query
18+
required: true
19+
schema:
20+
type: integer
21+
- name: env-id
22+
in: query
23+
required: true
24+
schema:
25+
type: integer
26+
responses:
27+
'200':
28+
description: Successful response
29+
content:
30+
application/json:
31+
schema:
32+
$ref: '#/components/schemas/ManagedResourcesResponse'
33+
'400':
34+
description: Bad request
35+
'401':
36+
description: Unauthorized
37+
'404':
38+
description: Not found
39+
'500':
40+
description: Internal server error
41+
42+
/orchestrator/drift/managed-resource:
43+
post:
44+
summary: Get managed resource details
45+
description: Returns the managed resource details including desired and live states for a given application and environment.
46+
requestBody:
47+
required: true
48+
content:
49+
application/json:
50+
schema:
51+
type: object
52+
properties:
53+
AppId:
54+
type: string
55+
description: ID of the application.
56+
ClusterId:
57+
type: integer
58+
description: ID of the cluster.
59+
AppType:
60+
type: string
61+
enum:
62+
- DevtronAppType
63+
- HelmAppType
64+
- ArgoAppType
65+
- FluxAppType
66+
description: Type of the application.
67+
K8sRequest:
68+
type: object
69+
properties:
70+
ResourceIdentifier:
71+
type: object
72+
properties:
73+
GroupVersionKind:
74+
type: object
75+
properties:
76+
Group:
77+
type: string
78+
description: API group of the Kubernetes resource.
79+
Version:
80+
type: string
81+
description: API version of the Kubernetes resource.
82+
Kind:
83+
type: string
84+
description: Kind of the Kubernetes resource.
85+
DevtronAppIdentifier:
86+
type: object
87+
properties:
88+
AppId:
89+
type: string
90+
description: ID of the Devtron application.
91+
EnvId:
92+
type: string
93+
description: ID of the environment.
94+
responses:
95+
'200':
96+
description: Successfully retrieved managed resource details
97+
content:
98+
application/json:
99+
schema:
100+
type: object
101+
properties:
102+
DesiredState:
103+
type: object
104+
description: The desired state of the resource.
105+
LiveState:
106+
type: object
107+
description: The live state of the resource.
108+
NormalizedLiveState:
109+
type: object
110+
description: The normalized live state of the resource.
111+
PredictedLiveState:
112+
type: object
113+
description: The predicted live state of the resource.
114+
Modified:
115+
type: boolean
116+
description: Indicates if the resource has been modified.
117+
'400':
118+
description: Invalid input, missing or incorrect parameters
119+
'403':
120+
description: Unauthorized access
121+
'500':
122+
description: Internal server error
123+
components:
124+
schemas:
125+
ResourceRequestBean:
126+
type: object
127+
properties:
128+
AppId:
129+
type: string
130+
ClusterId:
131+
type: integer
132+
ManagedResource:
133+
type: object
134+
properties:
135+
DesiredState:
136+
type: string
137+
LiveState:
138+
type: string
139+
NormalizedLiveState:
140+
type: object
141+
PredictedLiveState:
142+
type: object
143+
HasDrift:
144+
type: boolean
145+
ManagedResourcesResponse:
146+
type: object
147+
properties:
148+
resources:
149+
type: array
150+
items:
151+
$ref: '#/components/schemas/ManagedResource'
152+
ManifestComparison:
153+
type: object
154+
properties:
155+
drift:
156+
type: boolean
157+
description: Indicates if there is a drift.
158+
liveManifest:
159+
type: string
160+
description: The live manifest data.
161+
storedManifest:
162+
type: string
163+
description: The stored manifest data.
164+
kind:
165+
type: string
166+
description: The Kubernetes resource kind.
167+
name:
168+
type: string
169+
description: The name of the resource.
170+
namespace:
171+
type: string
172+
description: The namespace of the resource.
173+

0 commit comments

Comments
 (0)