Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
e834ea5
Initial implementation, prepare, gen.
wayneeseguin Nov 18, 2024
b04fac9
Added capi v3.181.0
wayneeseguin May 25, 2025
8d06cca
Updated README.md
wayneeseguin May 26, 2025
68b50f5
Added documentation (CAPI v3.195.0).
wayneeseguin May 26, 2025
078994c
Initial gen script.
wayneeseguin May 26, 2025
e60b148
First successful generation of go sdk.
wayneeseguin May 26, 2025
1fd8c1d
Ignore generated sdks.
wayneeseguin May 26, 2025
2066e0b
Deduplicated endpoints.
wayneeseguin May 26, 2025
ceb918b
Validation passes.
wayneeseguin May 27, 2025
bf43088
Consolidated to bin/gen
wayneeseguin May 30, 2025
0488c81
Updated README.md with current status.
wayneeseguin Jun 2, 2025
2b4d9c7
gen paths update.
wayneeseguin Jun 3, 2025
7047898
oapi-codegen generator & Go client publishing
wayneeseguin Jun 6, 2025
6110c0a
Removed 3.181 which was never completed.
wayneeseguin Jun 6, 2025
2872ea4
Major refactoring: automated CAPI OpenAPI spec generation from HTML spec
wayneeseguin Jun 12, 2025
56a2640
Initial commit
FloThinksPi Aug 27, 2024
2526674
Merge Florians and Waynes PoC
FloThinksPi Jul 31, 2025
2088567
Relicense as Apache 2.0 for the CF Foundation
FloThinksPi Aug 4, 2025
8a6722a
Redid the PoC largely
FloThinksPi Aug 6, 2025
fdab3c1
Flag project as experimental
FloThinksPi Aug 8, 2025
b5e45b8
Add script to manage issues for manual review
FloThinksPi Aug 8, 2025
2102f1e
Fix actions
FloThinksPi Aug 8, 2025
e565c79
Merge pull request #1023 from cloudfoundry/flag-experimental
FloThinksPi Aug 8, 2025
35e34c2
Update errors to be an array and to always re-use component
Samze Aug 12, 2025
87c5631
Various improvements
Samze Aug 13, 2025
3e2c63b
Merge pull request #1024 from cloudfoundry/various_improvements
Samze Aug 13, 2025
00991e3
Add explicit link references per resource
Samze Aug 13, 2025
4b7e4d3
Add missing 401 error to all but /,/v3,/v3/info endpoints
Samze Aug 13, 2025
c485ff5
Add missing location headers for 202 operations
Samze Aug 13, 2025
4a0397d
201 is only for User provided service creation
Samze Aug 13, 2025
fec1789
Update jobs to have specific links
Samze Aug 13, 2025
9eb4eb4
Add support for https://swagger.io/docs/specification/v3_0/links/ for…
Samze Aug 14, 2025
24de366
Add missing paths for revisions
Samze Aug 14, 2025
fd8829c
Remove job schema for service instance creation
Samze Aug 14, 2025
a768440
Remove other references to job schema from Services
Samze Aug 14, 2025
964e9e3
Fix pluralisation of job links
Samze Aug 14, 2025
828a24e
Merge pull request #1025 from cloudfoundry/explicit_linkss
FloThinksPi Aug 15, 2025
8227f5d
Fix action to deploy webpage
FloThinksPi Aug 14, 2025
55304b3
Fix compliance test
FloThinksPi Aug 15, 2025
6b77c7f
Fix API spec with findings from wiretap compliance test
FloThinksPi Aug 20, 2025
7ae31eb
Improve service instance type matching
Samze Aug 20, 2025
b23a0c7
Document mockserver and compliance test
FloThinksPi Aug 21, 2025
d0e745a
Merge pull request #1026 from cloudfoundry/service_instance_type_matc…
Samze Aug 22, 2025
3349452
Various fixes from wiretap
Samze Aug 22, 2025
f1d10ca
Add more Spec improvements
FloThinksPi Aug 22, 2025
3318cc0
Merge pull request #1027 from cloudfoundry/improve-spec
Samze Aug 22, 2025
14173fe
Merge branch 'main' into wiretap
Samze Aug 22, 2025
d3a2bc6
Merge pull request #1028 from cloudfoundry/wiretap
Samze Aug 22, 2025
4e4e4e5
Schema has been fixed, manual fix not required
Samze Aug 22, 2025
dfd6f34
Favour nullable since it works nicer than oneOf with clients
Samze Aug 22, 2025
38d522b
More wiretap improvements
Samze Aug 22, 2025
24e74a4
Move create/update schemas under requestBodies
Samze Aug 22, 2025
9745612
Update repo name in README.md file
anujc25 Aug 22, 2025
c3b6a59
Merge pull request #1032 from anujc25/anujc/update-repo-name-readme
Samze Aug 22, 2025
a06ac54
Merge pull request #1029 from cloudfoundry/remove_fix_script
FloThinksPi Aug 25, 2025
fe7d961
Merge pull request #1030 from cloudfoundry/favour_nullable
FloThinksPi Aug 25, 2025
fb6c3b7
Merge pull request #1031 from cloudfoundry/wiretap_2
FloThinksPi Aug 25, 2025
56a7c09
Add git cli in deploy github action
FloThinksPi Aug 25, 2025
d17bd8a
Fix pages
FloThinksPi Aug 25, 2025
fec73ed
Use gnutar
FloThinksPi Aug 25, 2025
33d103c
Increase permissions to push pages
FloThinksPi Aug 25, 2025
96bc567
Increased permissions for github actions to deply pages
FloThinksPi Aug 25, 2025
990eaa7
Update README with rendered OpenAPI link
FloThinksPi Aug 26, 2025
4ba4745
Fixes from request spec validation
Samze Aug 26, 2025
1858881
Merge pull request #1034 from cloudfoundry/request_spec_fixes
Samze Aug 27, 2025
5f34f58
Fix support for included
Samze Aug 27, 2025
489d28b
Merge pull request #1035 from cloudfoundry/included
Samze Aug 27, 2025
19f5e56
Reuse exisiting errors schema
Samze Sep 5, 2025
95e3fef
Merge pull request #1036 from cloudfoundry/reuse_errors
Samze Sep 9, 2025
0fb99b0
Add missing set role by username feature
Samze Sep 10, 2025
4c0b2c8
Merge pull request #1037 from cloudfoundry/set_role_by_username
Samze Sep 10, 2025
338ce3e
Flag spec as experimental
FloThinksPi Sep 22, 2025
9bf9838
Fix list resources
PeteLevineA Oct 31, 2025
ef07945
Adjust App List to not include Included within Resources array
PeteLevineA Oct 31, 2025
d2089f9
Remove unused PaginatedUsers component schema
PeteLevineA Nov 10, 2025
6bba909
Update Resources Reference for Included Field
PeteLevineA Nov 19, 2025
56dea21
Merge pull request #1042 from PeteLevineA/openapi-improvements
Samze Nov 19, 2025
8cb513c
User guids can be client ids
Samze Jan 6, 2026
9503854
Merge pull request #1043 from cloudfoundry/client_ids
Samze Jan 7, 2026
2b21875
Update openapi schema changes of Deployment and Processes (#1044)
mervinnirmaljohn Jan 21, 2026
70c07ec
Fix incorrect JSON pointer path for droplet GUID in Builds.yaml (#1045)
samair Mar 31, 2026
539f646
Remove non-existent PUT method from /v3/routes/{guid}/destinations (#…
sethboyles Apr 23, 2026
adf6eb8
Add GET /v3/processes/{guid}/process_instances endpoint to spec (#1049)
sethboyles Apr 23, 2026
b3c16a7
Add missing endpoint specs for spaces usage_summary and isolation seg…
sethboyles Apr 23, 2026
3e6ba4d
Add IndexLink schema to handle index link's metadata field (#1051)
PeteLevineA May 26, 2026
4da09ec
Introduce oasdiff and oasdiff breaking changes workflow on PR to main…
PeteLevineA Jun 5, 2026
c073f13
Add curated examples, fix lint errors, and update schemas (#1052)
PeteLevineA Jun 8, 2026
f576838
Add 'docs/openapi/' from commit 'c073f13e12b8eefb037a8a6cd480038716e5…
sethboyles Jul 13, 2026
8c3c434
Move openapi GitHub Actions workflows to repo root
sethboyles Jul 13, 2026
1188f4e
Publish openapi docs into gh-pages subdir instead of separate Pages d…
sethboyles Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/openapi_breaking_changes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: OpenAPI Breaking Changes

on:
pull_request:
branches:
- main
paths:
- 'docs/openapi/**'
- '.github/workflows/openapi_breaking_changes.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
detect-breaking-changes:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout PR
uses: actions/checkout@v4
with:
path: pr
persist-credentials: false

- name: Checkout Base Branch
uses: actions/checkout@v4
with:
ref: ${{ github.base_ref }}
path: base
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'yarn'
cache-dependency-path: |
pr/docs/openapi/yarn.lock
base/docs/openapi/yarn.lock

- name: Build PR Spec
working-directory: pr/docs/openapi
run: |
yarn install --frozen-lockfile --ignore-scripts
yarn build

- name: Build Base Spec
working-directory: base/docs/openapi
run: |
yarn install --frozen-lockfile --ignore-scripts
yarn build

- name: Check for Breaking Changes
uses: oasdiff/oasdiff-action/breaking@v0.0.37
with:
base: 'base/docs/openapi/dist/latest/openapi.yaml'
revision: 'pr/docs/openapi/dist/latest/openapi.yaml'
fail-on: 'ERR'
55 changes: 55 additions & 0 deletions .github/workflows/openapi_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Deploy CF API V3 OpenAPI Documentation

on:
push:
branches:
- main
paths:
- 'docs/openapi/**'
- '.github/workflows/openapi_deploy.yml'
workflow_dispatch:

jobs:
deploy:
name: Build and publish to gh-pages
runs-on: ubuntu-latest
container:
image: node:24-alpine
permissions:
contents: write
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
path: main

- name: Setup
working-directory: main/docs/openapi
run: |
apk add python3 make g++ git tar
yarn install

- name: Build
working-directory: main/docs/openapi
run: yarn build

- name: Checkout gh-pages
uses: actions/checkout@v4
with:
ref: gh-pages
path: gh-pages

- name: Sync built docs into gh-pages/openapi
run: |
rm -rf gh-pages/openapi
mkdir -p gh-pages/openapi
cp -r main/docs/openapi/dist/. gh-pages/openapi/

- name: Commit and push
working-directory: gh-pages
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add openapi
git diff --cached --quiet && echo "No changes to publish" || \
(git commit -m "Update openapi docs from ${GITHUB_SHA}" && git push)
38 changes: 38 additions & 0 deletions .github/workflows/openapi_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: OpenAPI Docs Test

on:
workflow_dispatch:
pull_request:
branches: [ main ]
paths:
- 'docs/openapi/**'
- '.github/workflows/openapi_test.yml'

concurrency:
group: '${{ github.workflow }}-${{ github.head_ref || github.run_id }}'
cancel-in-progress: true

jobs:
test:
name: Test
runs-on: ubuntu-latest
container:
image: node:24-alpine
defaults:
run:
working-directory: docs/openapi
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
run: |
apk add python3 make g++
yarn install
- name: Stats
run: yarn redocly stats --format markdown >> $GITHUB_STEP_SUMMARY
- name: Lint
run: |
yarn redocly lint --max-problems 9999 --format markdown >> $GITHUB_STEP_SUMMARY || true
yarn redocly lint --max-problems 9999 --format github-actions
- name: Build
run: yarn build

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +17 to +38
47 changes: 47 additions & 0 deletions docs/openapi/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# From capi-openapi-spec
capi/*.json
capi/*.yml
.DS_Store
openapitools.json
clients/
sdk/
node_modules/

# Test SDK integration generated files
test/sdk-integration/python/capi_client/
test/sdk-integration/python/docs/
test/sdk-integration/python/test/
test/sdk-integration/python/.openapi-generator/
test/sdk-integration/python/*.egg-info/
test/sdk-integration/python/build/
test/sdk-integration/python/dist/
test/sdk-integration/python/.tox/
test/sdk-integration/python/.pytest_cache/
test/sdk-integration/python/__pycache__/
test/sdk-integration/python/.coverage
test/sdk-integration/python/htmlcov/
test/sdk-integration/python/README.md
test/sdk-integration/python/setup.py
test/sdk-integration/python/setup.cfg
test/sdk-integration/python/pyproject.toml
test/sdk-integration/python/requirements.txt
test/sdk-integration/python/test-requirements.txt
test/sdk-integration/python/tox.ini
test/sdk-integration/python/git_push.sh
test/sdk-integration/python/.github/
test/sdk-integration/python/.gitlab-ci.yml
test/sdk-integration/python/.travis.yml

# Test SDK integration Go generated files (if any beyond the test files)
test/sdk-integration/go/vendor/
test/sdk-integration/go/pkg/
test/sdk-integration/go/bin/

# From cf-api-openapi-poc
.idea
*.iml
dist
node_modules
out
tmp
.tmp
5 changes: 5 additions & 0 deletions docs/openapi/.redocly.lint-ignore.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.
# See https://redocly.com/docs/cli/ for more information.
apis/cf/latest/paths/Packages.yaml:
operation-2xx-response:
- '#/~1v3~1packages~1{guid}~1download/get/responses'
Loading
Loading