|
867 | 867 | }, |
868 | 868 | "type": "object" |
869 | 869 | }, |
| 870 | + "UpdateCustomRuleGroupPayload": { |
| 871 | + "description": "Request payload for updating an existing CRG. Replaces the rules array atomically.", |
| 872 | + "properties": { |
| 873 | + "name": { |
| 874 | + "description": "Custom rule group name. Immutable resource key. Provided via URL path.", |
| 875 | + "example": "my-custom-rule-group-config", |
| 876 | + "pattern": "^[0-9a-z](?:(?:[0-9a-z]|-){0,61}[0-9a-z])?$", |
| 877 | + "readOnly": true, |
| 878 | + "type": "string" |
| 879 | + }, |
| 880 | + "projectId": { |
| 881 | + "description": "Project identifier", |
| 882 | + "example": "2438ac3c-37eb-4902-adef-ed16b4431030", |
| 883 | + "format": "uuid", |
| 884 | + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", |
| 885 | + "readOnly": true, |
| 886 | + "type": "string" |
| 887 | + }, |
| 888 | + "region": { |
| 889 | + "description": "Region", |
| 890 | + "example": "eu01", |
| 891 | + "format": "string", |
| 892 | + "pattern": "^[a-z]{2,4}[0-9]{2}$", |
| 893 | + "readOnly": true, |
| 894 | + "type": "string" |
| 895 | + }, |
| 896 | + "rules": { |
| 897 | + "description": "The collection of custom rule group SecLang parameters forming this execution group. Replaces the existing rules atomically.", |
| 898 | + "items": { |
| 899 | + "$ref": "#/components/schemas/CreateCustomRule" |
| 900 | + }, |
| 901 | + "type": "array" |
| 902 | + } |
| 903 | + }, |
| 904 | + "required": [ |
| 905 | + "name", |
| 906 | + "rules" |
| 907 | + ], |
| 908 | + "type": "object" |
| 909 | + }, |
870 | 910 | "UpdateWAFPayload": { |
871 | 911 | "description": "UpdateWAFRequest updates a WAF if rules changed.", |
872 | 912 | "properties": { |
|
1354 | 1394 | ] |
1355 | 1395 | } |
1356 | 1396 | } |
| 1397 | + }, |
| 1398 | + "put": { |
| 1399 | + "description": "Replaces the rules array of an existing CRG. The CRG name is immutable and used as the resource key. Send the complete desired rule set; per-rule partial merge is not supported.", |
| 1400 | + "operationId": "UpdateCustomRuleGroup", |
| 1401 | + "parameters": [ |
| 1402 | + { |
| 1403 | + "in": "path", |
| 1404 | + "name": "projectId", |
| 1405 | + "required": true, |
| 1406 | + "schema": { |
| 1407 | + "type": "string" |
| 1408 | + } |
| 1409 | + }, |
| 1410 | + { |
| 1411 | + "in": "path", |
| 1412 | + "name": "region", |
| 1413 | + "required": true, |
| 1414 | + "schema": { |
| 1415 | + "type": "string" |
| 1416 | + } |
| 1417 | + }, |
| 1418 | + { |
| 1419 | + "in": "path", |
| 1420 | + "name": "name", |
| 1421 | + "required": true, |
| 1422 | + "schema": { |
| 1423 | + "type": "string" |
| 1424 | + } |
| 1425 | + } |
| 1426 | + ], |
| 1427 | + "requestBody": { |
| 1428 | + "content": { |
| 1429 | + "application/json": { |
| 1430 | + "schema": { |
| 1431 | + "$ref": "#/components/schemas/UpdateCustomRuleGroupPayload" |
| 1432 | + } |
| 1433 | + } |
| 1434 | + }, |
| 1435 | + "required": true |
| 1436 | + }, |
| 1437 | + "responses": { |
| 1438 | + "200": { |
| 1439 | + "content": { |
| 1440 | + "application/json": { |
| 1441 | + "schema": { |
| 1442 | + "$ref": "#/components/schemas/GetCustomRuleGroupResponse" |
| 1443 | + } |
| 1444 | + } |
| 1445 | + }, |
| 1446 | + "description": "OK" |
| 1447 | + }, |
| 1448 | + "400": { |
| 1449 | + "description": "One or more fields are invalid." |
| 1450 | + }, |
| 1451 | + "401": { |
| 1452 | + "content": { |
| 1453 | + "*/*": { |
| 1454 | + "schema": { |
| 1455 | + "$ref": "#/components/schemas/Status" |
| 1456 | + } |
| 1457 | + } |
| 1458 | + }, |
| 1459 | + "description": "Unauthorized" |
| 1460 | + }, |
| 1461 | + "403": { |
| 1462 | + "description": "this project_id is not allowed to try this API" |
| 1463 | + }, |
| 1464 | + "500": { |
| 1465 | + "description": "internal error - please retry again later or contact support if the issue persists" |
| 1466 | + }, |
| 1467 | + "default": { |
| 1468 | + "content": { |
| 1469 | + "application/json": { |
| 1470 | + "schema": { |
| 1471 | + "$ref": "#/components/schemas/Status" |
| 1472 | + } |
| 1473 | + } |
| 1474 | + }, |
| 1475 | + "description": "Default error response" |
| 1476 | + } |
| 1477 | + }, |
| 1478 | + "summary": "Update a CRG configuration", |
| 1479 | + "x-stackit-authorization": { |
| 1480 | + "actions": [ |
| 1481 | + "alb.waf.crg.update" |
| 1482 | + ], |
| 1483 | + "resource-id": "projectId", |
| 1484 | + "resource-id-type": "dynamic", |
| 1485 | + "resource-type": "project", |
| 1486 | + "service-enablement": null, |
| 1487 | + "services": [ |
| 1488 | + "cloud.stackit.loadbalancer" |
| 1489 | + ] |
| 1490 | + } |
1357 | 1491 | } |
1358 | 1492 | }, |
1359 | 1493 | "/v1beta/projects/{projectId}/regions/{region}/managed-rule-sets": { |
|
0 commit comments