diff --git a/changelog/18624.txt b/changelog/18624.txt new file mode 100644 index 000000000000..91209bb46d9e --- /dev/null +++ b/changelog/18624.txt @@ -0,0 +1,3 @@ +```release-note:improvement +openapi: add openapi response definitions to /sys/rotate endpoints +``` diff --git a/vault/logical_system_paths.go b/vault/logical_system_paths.go index 9dfa43193782..8fd5dc9bff3a 100644 --- a/vault/logical_system_paths.go +++ b/vault/logical_system_paths.go @@ -1260,9 +1260,33 @@ func (b *SystemBackend) sealPaths() []*framework.Path { Operations: map[logical.Operation]framework.OperationHandler{ logical.ReadOperation: &framework.PathOperation{ Callback: b.handleKeyRotationConfigRead, + Responses: map[int][]framework.Response{ + http.StatusOK: {{ + Description: "OK", + Fields: map[string]*framework.FieldSchema{ + "max_operations": { + Type: framework.TypeInt64, + Required: true, + }, + "enabled": { + Type: framework.TypeBool, + Required: true, + }, + "interval": { + Type: framework.TypeDurationSecond, + Required: true, + }, + }, + }}, + }, }, logical.UpdateOperation: &framework.PathOperation{ - Callback: b.handleKeyRotationConfigUpdate, + Callback: b.handleKeyRotationConfigUpdate, + Responses: map[int][]framework.Response{ + http.StatusNoContent: {{ + Description: "OK", + }}, + }, ForwardPerformanceSecondary: true, ForwardPerformanceStandby: true, }, @@ -1275,8 +1299,15 @@ func (b *SystemBackend) sealPaths() []*framework.Path { { Pattern: "rotate$", - Callbacks: map[logical.Operation]framework.OperationFunc{ - logical.UpdateOperation: b.handleRotate, + Operations: map[logical.Operation]framework.OperationHandler{ + logical.UpdateOperation: &framework.PathOperation{ + Callback: b.handleRotate, + Responses: map[int][]framework.Response{ + http.StatusNoContent: {{ + Description: "OK", + }}, + }, + }, }, HelpSynopsis: strings.TrimSpace(sysHelp["rotate"][0]), diff --git a/vault/logical_system_test.go b/vault/logical_system_test.go index 69dbc9444b57..3dcb6e5b36d9 100644 --- a/vault/logical_system_test.go +++ b/vault/logical_system_test.go @@ -3146,6 +3146,13 @@ func TestSystemBackend_rotateConfig(t *testing.T) { t.Fatalf("err: %v", err) } + schema.ValidateResponse( + t, + schema.GetResponseSchema(t, b.(*SystemBackend).Route(req.Path), req.Operation), + resp, + true, + ) + exp := map[string]interface{}{ "max_operations": absoluteOperationMaximum, "interval": 0, @@ -3164,11 +3171,22 @@ func TestSystemBackend_rotateConfig(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } + schema.ValidateResponse( + t, + schema.GetResponseSchema(t, b.(*SystemBackend).Route(req2.Path), req2.Operation), + resp, + true, + ) resp, err = b.HandleRequest(namespace.RootContext(nil), req) if err != nil { t.Fatalf("err: %v", err) } + schema.ValidateResponse( + t, + schema.GetResponseSchema(t, b.(*SystemBackend).Route(req.Path), req.Operation), resp, + true, + ) exp = map[string]interface{}{ "max_operations": int64(3221225472),