# Cascades

## GET /sfp/api/cascades

> List cascade configurations for a repository

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades":{"get":{"operationId":"CascadesController_list","summary":"List cascade configurations for a repository","parameters":[{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: member, owner, application"}},"tags":["Cascades"]}}}}
```

## POST /sfp/api/cascades

> Create or update a cascade configuration

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades":{"post":{"operationId":"CascadesController_create","summary":"Create or update a cascade configuration","parameters":[],"responses":{"201":{"description":"Cascade config created/updated"},"403":{"description":"Forbidden - Requires role: owner, application"}},"tags":["Cascades"]}}}}
```

## GET /sfp/api/cascades/{name}/dashboard

> Get cascade dashboard data for visualization

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}/dashboard":{"get":{"operationId":"CascadesController_getDashboard","summary":"Get cascade dashboard data for visualization","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Dashboard data for cascade visualization"},"403":{"description":"Forbidden - Requires role: member, owner, application"}},"tags":["Cascades"]}}}}
```

## GET /sfp/api/cascades/{name}

> Get a cascade configuration with edge states

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}":{"get":{"operationId":"CascadesController_get","summary":"Get a cascade configuration with edge states","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: member, owner, application"}},"tags":["Cascades"]}}}}
```

## DELETE /sfp/api/cascades/{name}

> Delete a cascade configuration

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}":{"delete":{"operationId":"CascadesController_delete","summary":"Delete a cascade configuration","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: owner, application"}},"tags":["Cascades"]}}}}
```

## POST /sfp/api/cascades/{name}/trigger

> Trigger a cascade run for all or a specific edge

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}/trigger":{"post":{"operationId":"CascadesController_trigger","summary":"Trigger a cascade run for all or a specific edge","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: owner, application"}},"tags":["Cascades"]}}}}
```

## POST /sfp/api/cascades/publish-results

> Publish cascade run results from CLI

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/publish-results":{"post":{"operationId":"CascadesController_publishResults","summary":"Publish cascade run results from CLI","parameters":[],"responses":{"403":{"description":"Forbidden - Requires role: application"}},"tags":["Cascades"]}}}}
```

## GET /sfp/api/cascades/{name}/schedules

> Get schedule info for a cascade

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}/schedules":{"get":{"operationId":"CascadesController_getSchedules","summary":"Get schedule info for a cascade","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: member, owner, application"}},"tags":["Cascades"]}}}}
```

## GET /sfp/api/cascades/{name}/runs

> Get cascade run summaries

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}}},"paths":{"/sfp/api/cascades/{name}/runs":{"get":{"operationId":"CascadesController_getRuns","summary":"Get cascade run summaries","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}},{"name":"repositoryIdentifier","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"403":{"description":"Forbidden - Requires role: member, owner, application"}},"tags":["Cascades"]}}}}
```
