Skip to content

Commit 5eaa308

Browse files
OAS Update
1 parent 1ecc5ee commit 5eaa308

1 file changed

Lines changed: 62 additions & 120 deletions

File tree

services/resource-manager/v0/resource-manager.json

Lines changed: 62 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -80,50 +80,6 @@
8080
}
8181
},
8282
"schemas": {
83-
"ContainerSearchResult": {
84-
"properties": {
85-
"containerId": {
86-
"description": "Globally unique user-friendly identifier.",
87-
"example": "my-container-N7jXQY1",
88-
"type": "string"
89-
},
90-
"containerType": {
91-
"description": "Resource container type.",
92-
"enum": [
93-
"PROJECT",
94-
"FOLDER"
95-
],
96-
"type": "string"
97-
},
98-
"id": {
99-
"description": "Globally unique identifier.",
100-
"example": "4d8c80b4-ded9-44cf-81ac-4fc5a2f7fc87",
101-
"format": "uuid",
102-
"type": "string"
103-
},
104-
"lifecycleState": {
105-
"$ref": "#/components/schemas/LifecycleState"
106-
},
107-
"name": {
108-
"description": "Resource container name.",
109-
"example": "My Container",
110-
"type": "string"
111-
},
112-
"organizationId": {
113-
"description": "Id of the organization the container is in.",
114-
"example": "9d8c89b4-aed9-44cf-81dc-4fc5a2f7fc32",
115-
"format": "uuid",
116-
"type": "string"
117-
}
118-
},
119-
"required": [
120-
"containerId",
121-
"id",
122-
"name",
123-
"containerType"
124-
],
125-
"type": "object"
126-
},
12783
"CreateFolderPayload": {
12884
"properties": {
12985
"containerParentId": {
@@ -866,7 +822,7 @@
866822
"paths": {
867823
"/v2/folders": {
868824
"get": {
869-
"description": "Returns all folders and their metadata that: \n- Are children of the specific containerParentId\n- Match the given containerIds\n- User is member of \u003cbr /\u003e\n\nFilter:\n- Either containerParentId OR containerIds OR member must be passed\n- If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent\n- If member and containerParentId are given, both are used for filtering\n- If member is given, containers must not point to the same container parent\n",
825+
"description": "Returns all folders and their metadata that: \n- Are children of the specific containerParentId\n- Match the given containerIds\n- User is member of \u003cbr /\u003e\n\nFilter:\n- Either containerParentId OR containerIds OR member must be passed\n- If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent\n- If member and containerParentId are given, both are used for filtering\n- If member is given, containers must not point to the same container parent\n\nAuthorization \u0026 Permissions:\n- When filtering by member: resource-manager.folder.direct.get is evaluated on target folders for the member; if caller differs from target member, system-level resource-manager.folder.get is required.\n- When filtering by containerParentId: resource-manager.folder.list is evaluated on the parent container.\n- When filtering by containerIds: resource-manager.folder.get is evaluated on the parent container of requested folders.\n",
870826
"operationId": "ListFolders",
871827
"parameters": [
872828
{
@@ -962,12 +918,14 @@
962918
"x-stackit-authorization": {
963919
"disabled": true,
964920
"implicit-actions": [
965-
"resource-manager.folder.list"
921+
"resource-manager.folder.direct.get",
922+
"resource-manager.folder.list",
923+
"resource-manager.folder.get"
966924
]
967925
}
968926
},
969927
"post": {
970-
"description": "Create a new folder.",
928+
"description": "Creates a new folder within a parent organization or folder.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Parent Container: resource-manager.folder.create (required permission on the target parent organization or folder to create a folder).",
971929
"operationId": "CreateFolder",
972930
"requestBody": {
973931
"content": {
@@ -1046,7 +1004,7 @@
10461004
},
10471005
"/v2/folders/{containerId}": {
10481006
"delete": {
1049-
"description": "Delete a folder and its metadata.\n- Folder must not be parent of any other container\n- A force flag may be set, deleting all underlying folders recursively - if no project is attached!",
1007+
"description": "Delete a folder and its metadata.\n- Folder must not contain active child containers unless force deletion is enabled without attached projects.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Folder: resource-manager.folder.delete (required permission on the target folder to delete it).",
10501008
"operationId": "DeleteFolder",
10511009
"parameters": [
10521010
{
@@ -1096,16 +1054,14 @@
10961054
},
10971055
"summary": "Delete Folder",
10981056
"x-stackit-authorization": {
1099-
"actions": [
1057+
"disabled": true,
1058+
"implicit-actions": [
11001059
"resource-manager.folder.delete"
1101-
],
1102-
"resource-id": "containerId",
1103-
"resource-id-type": "dynamic",
1104-
"resource-type": "folder"
1060+
]
11051061
}
11061062
},
11071063
"get": {
1108-
"description": "Returns all metadata for a specific folder.",
1064+
"description": "Returns metadata for a specific folder.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Folder: resource-manager.folder.get (required primary permission to retrieve folder details).\n- Evaluated on Parent Containers: resource-manager.organization.get and resource-manager.folder.get implicitly to resolve parent hierarchy details.",
11091065
"operationId": "GetFolderDetails",
11101066
"parameters": [
11111067
{
@@ -1161,12 +1117,11 @@
11611117
},
11621118
"summary": "Get Folder Details",
11631119
"x-stackit-authorization": {
1164-
"actions": [
1120+
"disabled": true,
1121+
"implicit-actions": [
1122+
"resource-manager.organization.get",
11651123
"resource-manager.folder.get"
1166-
],
1167-
"resource-id": "containerId",
1168-
"resource-id-type": "dynamic",
1169-
"resource-type": "folder"
1124+
]
11701125
}
11711126
},
11721127
"parameters": [
@@ -1181,7 +1136,7 @@
11811136
}
11821137
],
11831138
"patch": {
1184-
"description": "Update the folder and its metadata.\n- Update folder name\n- Update folder labels\n- Update folder parent (folder or organization)",
1139+
"description": "Update the folder and its metadata (name, labels, parent container).\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Folder: resource-manager.folder.edit (required permission on the target folder to modify its details, labels, or parent).",
11851140
"operationId": "PartialUpdateFolder",
11861141
"requestBody": {
11871142
"content": {
@@ -1251,18 +1206,16 @@
12511206
},
12521207
"summary": "Update Folder",
12531208
"x-stackit-authorization": {
1254-
"actions": [
1209+
"disabled": true,
1210+
"implicit-actions": [
12551211
"resource-manager.folder.edit"
1256-
],
1257-
"resource-id": "containerId",
1258-
"resource-id-type": "dynamic",
1259-
"resource-type": "folder"
1212+
]
12601213
}
12611214
}
12621215
},
12631216
"/v2/folders/{containerId}/labels": {
12641217
"delete": {
1265-
"description": "Deletes all folder labels by given keys.\n- Specific labels may be deleted by key(s)\n- If no key is specified, all labels will be deleted!",
1218+
"description": "Deletes folder labels by specified keys, or removes all labels if no key is provided.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Folder: resource-manager.folder.edit (required permission on the target folder to delete its labels).",
12661219
"operationId": "DeleteFolderLabels",
12671220
"parameters": [
12681221
{
@@ -1299,12 +1252,10 @@
12991252
},
13001253
"summary": "Delete Folder Labels",
13011254
"x-stackit-authorization": {
1302-
"actions": [
1255+
"disabled": true,
1256+
"implicit-actions": [
13031257
"resource-manager.folder.edit"
1304-
],
1305-
"resource-id": "containerId",
1306-
"resource-id-type": "dynamic",
1307-
"resource-type": "folder"
1258+
]
13081259
}
13091260
},
13101261
"parameters": [
@@ -1321,7 +1272,7 @@
13211272
},
13221273
"/v2/organizations": {
13231274
"get": {
1324-
"description": "Returns all organizations and their metadata.\n- If no containerIds are specified, all organizations are returned, if permitted\n- ContainerIds may be set to filter\n- Member may be set to filter\n- If member and containerIds are given, both are used for filtering\n",
1275+
"description": "Returns all organizations and their metadata accessible to the caller.\n- Filterable by containerIds or member.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Organizations: resource-manager.organization.list and/or (depending if containerIDs was used in the request) resource-manager.organization.get to filter and list accessible organizations.",
13251276
"operationId": "ListOrganizations",
13261277
"parameters": [
13271278
{
@@ -1390,18 +1341,19 @@
13901341
"description": "Forbidden"
13911342
}
13921343
},
1393-
"summary": "Get All Organizations",
1344+
"summary": "Get all organizations of member",
13941345
"x-stackit-authorization": {
13951346
"disabled": true,
13961347
"implicit-actions": [
1397-
"resource-manager.organization.get"
1348+
"resource-manager.organization.get",
1349+
"resource-manager.organization.list"
13981350
]
13991351
}
14001352
}
14011353
},
14021354
"/v2/organizations/{containerId}/labels": {
14031355
"delete": {
1404-
"description": "Deletes all organization labels by given keys.\n- Specific labels may be deleted by key(s)\n- If no key is specified, all labels will be deleted!",
1356+
"description": "Deletes organization labels by specified keys, or removes all labels if no key is provided.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Organization: resource-manager.organization.edit (required permission on the organization to delete labels).",
14051357
"operationId": "DeleteOrganizationLabels",
14061358
"parameters": [
14071359
{
@@ -1438,12 +1390,10 @@
14381390
},
14391391
"summary": "Delete Organization Labels",
14401392
"x-stackit-authorization": {
1441-
"actions": [
1393+
"disabled": true,
1394+
"implicit-actions": [
14421395
"resource-manager.organization.edit"
1443-
],
1444-
"resource-id": "containerId",
1445-
"resource-id-type": "dynamic",
1446-
"resource-type": "organization"
1396+
]
14471397
}
14481398
},
14491399
"parameters": [
@@ -1460,7 +1410,7 @@
14601410
},
14611411
"/v2/organizations/{id}": {
14621412
"get": {
1463-
"description": "Returns the organization and its metadata.",
1413+
"description": "Returns metadata for a specific organization.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Organization: resource-manager.organization.get (required permission on the organization to view its details).",
14641414
"operationId": "GetOrganization",
14651415
"responses": {
14661416
"200": {
@@ -1491,12 +1441,10 @@
14911441
},
14921442
"summary": "Get Organization Details",
14931443
"x-stackit-authorization": {
1494-
"actions": [
1444+
"disabled": true,
1445+
"implicit-actions": [
14951446
"resource-manager.organization.get"
1496-
],
1497-
"resource-id": "id",
1498-
"resource-id-type": "dynamic",
1499-
"resource-type": "organization"
1447+
]
15001448
}
15011449
},
15021450
"parameters": [
@@ -1511,7 +1459,7 @@
15111459
}
15121460
],
15131461
"patch": {
1514-
"description": "Update the organization and its metadata.\n- Update organization name\n- Update organization labels",
1462+
"description": "Updates organization metadata (name, labels).\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Organization: resource-manager.organization.edit (required permission on the organization to update metadata and labels).",
15151463
"operationId": "PartialUpdateOrganization",
15161464
"requestBody": {
15171465
"content": {
@@ -1566,18 +1514,16 @@
15661514
},
15671515
"summary": "Update Organization",
15681516
"x-stackit-authorization": {
1569-
"actions": [
1517+
"disabled": true,
1518+
"implicit-actions": [
15701519
"resource-manager.organization.edit"
1571-
],
1572-
"resource-id": "id",
1573-
"resource-id-type": "dynamic",
1574-
"resource-type": "organization"
1520+
]
15751521
}
15761522
}
15771523
},
15781524
"/v2/projects": {
15791525
"get": {
1580-
"description": "Returns all projects and their metadata that: \n- Are children of the specific containerParentId\n- Match the given containerIds\n- User is member of\n\nFilter:\n- Either containerParentId OR containerIds OR member must be passed\n- If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent\n- If member and containerParentId are given, both are used for filtering\n- If member is given, containers must not point to the same container parent",
1526+
"description": "Returns all projects and their metadata that: \n- Are children of the specific containerParentId\n- Match the given containerIds\n- User is member of\n\nFilter:\n- Either containerParentId OR containerIds OR member must be passed\n- If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent\n- If member and containerParentId are given, both are used for filtering\n- If member is given, containers must not point to the same container parent\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Projects: resource-manager.project.get, resource-manager.project.list, or resource-manager.project.direct.get to filter and return accessible projects.",
15811527
"operationId": "ListProjects",
15821528
"parameters": [
15831529
{
@@ -1654,16 +1600,18 @@
16541600
"description": "Forbidden"
16551601
}
16561602
},
1657-
"summary": "Get All Projects",
1603+
"summary": "Get All Projects of a member.",
16581604
"x-stackit-authorization": {
16591605
"disabled": true,
16601606
"implicit-actions": [
1661-
"resource-manager.project.list"
1607+
"resource-manager.project.get",
1608+
"resource-manager.project.list",
1609+
"resource-manager.project.direct.get"
16621610
]
16631611
}
16641612
},
16651613
"post": {
1666-
"description": "Create a new project. \n- The request is synchronous, but the workflow-based creation is asynchronous.\n- Lifecycle state remains in CREATING, until workflow completes",
1614+
"description": "Creates a new project within a parent container.\n- Creation request returns synchronously, while underlying resource provisioning runs asynchronously.\n- Initial lifecycle state is CREATING until provisioning completes.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Parent Container: resource-manager.project.create (required permission on the target parent organization or folder to create a project).",
16671615
"operationId": "CreateProject",
16681616
"requestBody": {
16691617
"content": {
@@ -1742,7 +1690,7 @@
17421690
},
17431691
"/v2/projects/{containerId}/labels": {
17441692
"delete": {
1745-
"description": "Deletes all project labels by given keys.\n- Specific labels may be deleted by key(s)\n- If no key is specified, all labels will be deleted!",
1693+
"description": "Deletes project labels by specified keys, or removes all labels if no key is provided.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Project: resource-manager.project.edit (required permission on the project to delete its labels).",
17461694
"operationId": "DeleteProjectLabels",
17471695
"parameters": [
17481696
{
@@ -1779,12 +1727,10 @@
17791727
},
17801728
"summary": "Delete Project Labels",
17811729
"x-stackit-authorization": {
1782-
"actions": [
1730+
"disabled": true,
1731+
"implicit-actions": [
17831732
"resource-manager.project.edit"
1784-
],
1785-
"resource-id": "containerId",
1786-
"resource-id-type": "dynamic",
1787-
"resource-type": "project"
1733+
]
17881734
}
17891735
},
17901736
"parameters": [
@@ -1801,7 +1747,7 @@
18011747
},
18021748
"/v2/projects/{id}": {
18031749
"delete": {
1804-
"description": "Triggers the deletion of a project. \n- The request is synchronous, but the workflow-based deletion is asynchronous\n- Lifecycle state remains in DELETING, until workflow completes",
1750+
"description": "Triggers the deletion of a project.\n- Request returns synchronously, while deletion process runs asynchronously.\n- Initial lifecycle state is DELETING until workflow completes.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Project: resource-manager.project.delete (required permission on the project to delete it).",
18051751
"operationId": "DeleteProject",
18061752
"responses": {
18071753
"202": {
@@ -1825,16 +1771,14 @@
18251771
},
18261772
"summary": "Delete Project",
18271773
"x-stackit-authorization": {
1828-
"actions": [
1774+
"disabled": true,
1775+
"implicit-actions": [
18291776
"resource-manager.project.delete"
1830-
],
1831-
"resource-id": "id",
1832-
"resource-id-type": "dynamic",
1833-
"resource-type": "project"
1777+
]
18341778
}
18351779
},
18361780
"get": {
1837-
"description": "Returns the project and its metadata.",
1781+
"description": "Returns the project and its metadata.\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Project: resource-manager.project.get (required primary permission to view project details).\n- Evaluated on Parent Containers: resource-manager.organization.get and resource-manager.folder.get on parent organizations/folders implicitly to resolve and include parent metadata in the response hierarchy.",
18381782
"operationId": "GetProject",
18391783
"parameters": [
18401784
{
@@ -1890,12 +1834,12 @@
18901834
},
18911835
"summary": "Get Project Details",
18921836
"x-stackit-authorization": {
1893-
"actions": [
1837+
"disabled": true,
1838+
"implicit-actions": [
1839+
"resource-manager.organization.get",
1840+
"resource-manager.folder.get",
18941841
"resource-manager.project.get"
1895-
],
1896-
"resource-id": "id",
1897-
"resource-id-type": "dynamic",
1898-
"resource-type": "project"
1842+
]
18991843
}
19001844
},
19011845
"parameters": [
@@ -1910,7 +1854,7 @@
19101854
}
19111855
],
19121856
"patch": {
1913-
"description": "Update the project and its metadata.\n- Update project name \n- Update project labels \n- Update project parent (folder or organization)",
1857+
"description": "Updates project metadata (name, labels, or parent hierarchy).\n\nAuthorization \u0026 Permissions:\n- Evaluated on Target Project: resource-manager.project.edit (required permission on the project to modify its details, labels, or parent).",
19141858
"operationId": "PartialUpdateProject",
19151859
"requestBody": {
19161860
"content": {
@@ -1980,12 +1924,10 @@
19801924
},
19811925
"summary": "Update Project",
19821926
"x-stackit-authorization": {
1983-
"actions": [
1927+
"disabled": true,
1928+
"implicit-actions": [
19841929
"resource-manager.project.edit"
1985-
],
1986-
"resource-id": "id",
1987-
"resource-id-type": "dynamic",
1988-
"resource-type": "project"
1930+
]
19891931
}
19901932
}
19911933
}

0 commit comments

Comments
 (0)