Skip to content

Commit f456d39

Browse files
OAS Update
1 parent bfe725c commit f456d39

File tree

1 file changed

+237
-12
lines changed

1 file changed

+237
-12
lines changed

services/postgres-flex/v3alpha1/postgres-flex.json

Lines changed: 237 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,17 @@
284284
}
285285
},
286286
"schemas": {
287+
"CloneResponse": {
288+
"properties": {
289+
"id": {
290+
"$ref": "#/components/schemas/instance.id"
291+
}
292+
},
293+
"required": [
294+
"id"
295+
],
296+
"type": "object"
297+
},
287298
"CreateDatabaseResponse": {
288299
"properties": {
289300
"id": {
@@ -432,6 +443,9 @@
432443
},
433444
"GetInstanceResponse": {
434445
"properties": {
446+
"acl": {
447+
"$ref": "#/components/schemas/acl"
448+
},
435449
"backupSchedule": {
436450
"$ref": "#/components/schemas/backup.schedule"
437451
},
@@ -1020,6 +1034,53 @@
10201034
"example": "AUTOMATED",
10211035
"type": "string"
10221036
},
1037+
"clone.instanceOverrides": {
1038+
"properties": {
1039+
"performanceClass": {
1040+
"$ref": "#/components/schemas/clone.storage.class"
1041+
},
1042+
"size": {
1043+
"$ref": "#/components/schemas/clone.storage.size"
1044+
}
1045+
},
1046+
"required": [
1047+
"size",
1048+
"performanceClass"
1049+
],
1050+
"type": "object"
1051+
},
1052+
"clone.pointInTime": {
1053+
"description": "the time for the point in time recovery it will be calculated between first backup and last backup",
1054+
"example": "2023-12-30T23:25:05Z",
1055+
"format": "date-time",
1056+
"type": "string"
1057+
},
1058+
"clone.storage.class": {
1059+
"description": "The storage class for the storage.",
1060+
"example": "premium-perf12-stackit",
1061+
"type": "string"
1062+
},
1063+
"clone.storage.size": {
1064+
"description": "The storage size in Gigabytes.",
1065+
"example": 10,
1066+
"format": "uint64",
1067+
"type": "integer"
1068+
},
1069+
"cloneRequestPayload": {
1070+
"properties": {
1071+
"instanceOverrides": {
1072+
"$ref": "#/components/schemas/clone.instanceOverrides"
1073+
},
1074+
"pointInTime": {
1075+
"$ref": "#/components/schemas/clone.pointInTime"
1076+
}
1077+
},
1078+
"required": [
1079+
"pointInTime",
1080+
"instanceOverrides"
1081+
],
1082+
"type": "object"
1083+
},
10231084
"createDatabaseRequestPayload": {
10241085
"properties": {
10251086
"name": {
@@ -1049,7 +1110,7 @@
10491110
"$ref": "#/components/schemas/instance.name"
10501111
},
10511112
"network": {
1052-
"$ref": "#/components/schemas/instance.network"
1113+
"$ref": "#/components/schemas/instance.network.create"
10531114
},
10541115
"replicas": {
10551116
"$ref": "#/components/schemas/replicas"
@@ -1390,26 +1451,42 @@
13901451
],
13911452
"type": "string"
13921453
},
1393-
"instance.network.opt": {
1454+
"instance.network.create": {
13941455
"description": "The access configuration of the instance",
13951456
"properties": {
13961457
"accessScope": {
13971458
"$ref": "#/components/schemas/instance.network.accessScope"
13981459
},
1460+
"acl": {
1461+
"$ref": "#/components/schemas/acl"
1462+
}
1463+
},
1464+
"required": [
1465+
"acl"
1466+
],
1467+
"type": "object"
1468+
},
1469+
"instance.network.opt": {
1470+
"description": "The access configuration of the instance",
1471+
"properties": {
13991472
"acl": {
14001473
"$ref": "#/components/schemas/acl.opt"
1401-
},
1402-
"instanceAddress": {
1403-
"example": "10.0.0.2",
1404-
"type": "string"
1405-
},
1406-
"routerAddress": {
1407-
"example": "10.0.0.1",
1408-
"type": "string"
14091474
}
14101475
},
14111476
"type": "object"
14121477
},
1478+
"instance.network.update": {
1479+
"description": "The access configuration of the instance",
1480+
"properties": {
1481+
"acl": {
1482+
"$ref": "#/components/schemas/acl"
1483+
}
1484+
},
1485+
"required": [
1486+
"acl"
1487+
],
1488+
"type": "object"
1489+
},
14131490
"instance.sort": {
14141491
"enum": [
14151492
"index.desc",
@@ -1644,7 +1721,7 @@
16441721
"$ref": "#/components/schemas/instance.name.opt"
16451722
},
16461723
"network": {
1647-
"$ref": "#/components/schemas/instance.network"
1724+
"$ref": "#/components/schemas/instance.network.opt"
16481725
},
16491726
"replicas": {
16501727
"$ref": "#/components/schemas/replicas.opt"
@@ -1673,7 +1750,7 @@
16731750
"$ref": "#/components/schemas/instance.name"
16741751
},
16751752
"network": {
1676-
"$ref": "#/components/schemas/instance.network"
1753+
"$ref": "#/components/schemas/instance.network.update"
16771754
},
16781755
"replicas": {
16791756
"$ref": "#/components/schemas/replicas"
@@ -3179,6 +3256,154 @@
31793256
}
31803257
}
31813258
},
3259+
"/v3alpha1/projects/{projectId}/regions/{region}/instances/{instanceId}/clone": {
3260+
"post": {
3261+
"description": "Clone Instance",
3262+
"operationId": "cloneRequest",
3263+
"parameters": [
3264+
{
3265+
"$ref": "#/components/parameters/project"
3266+
},
3267+
{
3268+
"$ref": "#/components/parameters/region"
3269+
},
3270+
{
3271+
"$ref": "#/components/parameters/instance"
3272+
}
3273+
],
3274+
"requestBody": {
3275+
"content": {
3276+
"application/json": {
3277+
"schema": {
3278+
"$ref": "#/components/schemas/cloneRequestPayload"
3279+
}
3280+
}
3281+
},
3282+
"description": "The request body with the parameters for cloning an instance by a point in time into a new instance."
3283+
},
3284+
"responses": {
3285+
"202": {
3286+
"content": {
3287+
"application/json": {
3288+
"schema": {
3289+
"$ref": "#/components/schemas/CloneResponse"
3290+
}
3291+
}
3292+
},
3293+
"description": "Accepted: The request was accepted"
3294+
},
3295+
"400": {
3296+
"content": {
3297+
"application/json": {
3298+
"examples": {
3299+
"badRequestError": {
3300+
"$ref": "#/components/examples/badRequestError"
3301+
}
3302+
},
3303+
"schema": {
3304+
"$ref": "#/components/schemas/Error"
3305+
}
3306+
}
3307+
},
3308+
"description": "Bad Request"
3309+
},
3310+
"401": {
3311+
"content": {
3312+
"application/json": {
3313+
"examples": {
3314+
"unauthorizedError": {
3315+
"$ref": "#/components/examples/unauthorizedError"
3316+
}
3317+
},
3318+
"schema": {
3319+
"$ref": "#/components/schemas/Error"
3320+
}
3321+
}
3322+
},
3323+
"description": "User is not allowed to perform this operation or credentials are not correct"
3324+
},
3325+
"403": {
3326+
"content": {
3327+
"application/json": {
3328+
"examples": {
3329+
"forbiddenError": {
3330+
"$ref": "#/components/examples/forbiddenError"
3331+
}
3332+
},
3333+
"schema": {
3334+
"$ref": "#/components/schemas/Error"
3335+
}
3336+
}
3337+
},
3338+
"description": "Forbidden: No access for the requested resource."
3339+
},
3340+
"404": {
3341+
"content": {
3342+
"application/json": {
3343+
"examples": {
3344+
"notFoundError": {
3345+
"$ref": "#/components/examples/notFoundError"
3346+
}
3347+
},
3348+
"schema": {
3349+
"$ref": "#/components/schemas/Error"
3350+
}
3351+
}
3352+
},
3353+
"description": "Not found: The requested resource was not found."
3354+
},
3355+
"422": {
3356+
"content": {
3357+
"application/json": {
3358+
"schema": {
3359+
"$ref": "#/components/schemas/ValidationError"
3360+
}
3361+
}
3362+
},
3363+
"description": "Request failed due to body validation"
3364+
},
3365+
"500": {
3366+
"content": {
3367+
"application/json": {
3368+
"examples": {
3369+
"internalServerError": {
3370+
"$ref": "#/components/examples/internalServerError"
3371+
}
3372+
},
3373+
"schema": {
3374+
"$ref": "#/components/schemas/Error"
3375+
}
3376+
}
3377+
},
3378+
"description": "Internal Server Error: An internal occurred while processing the request. Please contact the support or try again later."
3379+
},
3380+
"501": {
3381+
"content": {
3382+
"application/json": {
3383+
"examples": {
3384+
"notImplementedError": {
3385+
"$ref": "#/components/examples/notImplementedError"
3386+
}
3387+
},
3388+
"schema": {
3389+
"$ref": "#/components/schemas/Error"
3390+
}
3391+
}
3392+
},
3393+
"description": "Endpoint not implemented yet"
3394+
}
3395+
},
3396+
"summary": "Clone Instance",
3397+
"x-stackit-authorization": {
3398+
"actions": [
3399+
"postgres-flex.instance.clone"
3400+
],
3401+
"resource-id": "projectId",
3402+
"resource-id-type": "dynamic",
3403+
"resource-type": "project"
3404+
}
3405+
}
3406+
},
31823407
"/v3alpha1/projects/{projectId}/regions/{region}/instances/{instanceId}/collations": {
31833408
"get": {
31843409
"description": "Get available collations for an instance",

0 commit comments

Comments
 (0)