Flatcar Container Linux · Capability

Nebraska

Nebraska is an update manager.

Run with Naftiko FlatcarContainerLinuxAPI

What You Can Do

GET
Logincb — GitHub OAuth callback (GitHub mode only)
/login/cb
GET
Validatetoken — validate JWT access token (OIDC mode only)
/login/validate_token
POST
Loginwebhook — GitHub webhook (GitHub mode only)
/login/webhook
GET
Health — health endpoint
/health
GET
Getconfig — get app config
/config
POST
Omaha — omaha endpoint
/v1/update
GET
Paginateapps — get Apps
/api/apps
POST
Createapp — create app
/api/apps
GET
Getapp — get app
/api/apps/{appIDorProductID}
PUT
Updateapp — update app
/api/apps/{appIDorProductID}
DELETE
Deleteapp — delete app
/api/apps/{appIDorProductID}
GET
Paginategroups — paginate groups of an app
/api/apps/{appIDorProductID}/groups
POST
Creategroup — create group in app
/api/apps/{appIDorProductID}/groups
GET
Getgroup — get group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}
PUT
Updategroup — update group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}
DELETE
Deletegroup — delete group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}
GET
Getgroupversiontimeline — get version timeline of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/version_timeline
GET
Getgroupstatustimeline — get status timeline of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/status_timeline
GET
Getgroupinstancestats — get instance stats of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/instances_stats
GET
Getgroupversionbreakdown — get version breakdown of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/version_breakdown
GET
Paginatechannels — paginate channels of an app
/api/apps/{appIDorProductID}/channels
POST
Createchannel — create channel
/api/apps/{appIDorProductID}/channels
GET
Getchannel — get channel by id
/api/apps/{appIDorProductID}/channels/{channelID}
PUT
Updatechannel — update channel by id
/api/apps/{appIDorProductID}/channels/{channelID}
DELETE
Deletechannel — delete channel by id
/api/apps/{appIDorProductID}/channels/{channelID}
GET
Paginatechannelfloors — paginate floor packages of a channel
/api/channels/{channelID}/floors
PUT
Setchannelfloor — Create or update a floor package relationship (idempotent operation)
/api/channels/{channelID}/floors/{packageID}
DELETE
Removechannelfloor — remove package as floor for a channel
/api/channels/{channelID}/floors/{packageID}
GET
Paginatepackages — paginate packages of an app
/api/apps/{appIDorProductID}/packages
POST
Createpackage — create package
/api/apps/{appIDorProductID}/packages
GET
Getpackage — get package given its packageID and appID
/api/apps/{appIDorProductID}/packages/{packageID}
PUT
Updatepackage — update package given its packageID and appID
/api/apps/{appIDorProductID}/packages/{packageID}
DELETE
Deletepackage — delete package given its packageID and appID
/api/apps/{appIDorProductID}/packages/{packageID}
GET
Getpackagefloorchannels — get all channels where a package is marked as a floor
/api/apps/{appIDorProductID}/packages/{packageID}/floor-channels
GET
Getgroupinstances — get instances of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/instances
GET
Getgroupinstancescount — get instance count of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/instancescount
GET
Getinstance — get instance of a group given its groupID and appID
/api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}
GET
Getinstancestatushistory — get instance status_history.
/api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}/status_history
PUT
Updateinstance — update instance
/api/instances/{instanceID}
GET
Paginateactivity — paginate activity
/api/activity

MCP Tools

logincb

GitHub OAuth callback (GitHub mode only)

read-only idempotent
validatetoken

validate JWT access token (OIDC mode only)

read-only idempotent
loginwebhook

GitHub webhook (GitHub mode only)

health

health endpoint

read-only idempotent
getconfig

get app config

read-only idempotent
omaha

omaha endpoint

paginateapps

get Apps

read-only idempotent
createapp

create app

getapp

get app

read-only idempotent
updateapp

update app

idempotent
deleteapp

delete app

idempotent
paginategroups

paginate groups of an app

read-only idempotent
creategroup

create group in app

getgroup

get group given its groupID and appID

read-only idempotent
updategroup

update group given its groupID and appID

idempotent
deletegroup

delete group given its groupID and appID

idempotent
getgroupversiontimeline

get version timeline of a group given its groupID and appID

read-only idempotent
getgroupstatustimeline

get status timeline of a group given its groupID and appID

read-only idempotent
getgroupinstancestats

get instance stats of a group given its groupID and appID

read-only idempotent
getgroupversionbreakdown

get version breakdown of a group given its groupID and appID

read-only idempotent
paginatechannels

paginate channels of an app

read-only idempotent
createchannel

create channel

getchannel

get channel by id

read-only idempotent
updatechannel

update channel by id

idempotent
deletechannel

delete channel by id

idempotent
paginatechannelfloors

paginate floor packages of a channel

read-only idempotent
setchannelfloor

Create or update a floor package relationship (idempotent operation)

idempotent
removechannelfloor

remove package as floor for a channel

idempotent
paginatepackages

paginate packages of an app

read-only idempotent
createpackage

create package

getpackage

get package given its packageID and appID

read-only idempotent
updatepackage

update package given its packageID and appID

idempotent
deletepackage

delete package given its packageID and appID

idempotent
getpackagefloorchannels

get all channels where a package is marked as a floor

read-only idempotent
getgroupinstances

get instances of a group given its groupID and appID

read-only idempotent
getgroupinstancescount

get instance count of a group given its groupID and appID

read-only idempotent
getinstance

get instance of a group given its groupID and appID

read-only idempotent
getinstancestatushistory

get instance status_history.

read-only idempotent
updateinstance

update instance

idempotent
paginateactivity

paginate activity

read-only idempotent

Capability Spec

flatcar-container-linux-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Nebraska
  description: Nebraska is an update manager.
  tags:
  - Flatcar
  - Container
  - Linux
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: flatcar-container-linux
    baseUri: https://api.example.com
    description: Nebraska HTTP API.
    authentication:
      type: bearer
      token: '{{FLATCAR_CONTAINER_LINUX_TOKEN}}'
    resources:
    - name: login-cb
      path: /login/cb
      operations:
      - name: logincb
        method: GET
        description: GitHub OAuth callback (GitHub mode only)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: login-validate-token
      path: /login/validate_token
      operations:
      - name: validatetoken
        method: GET
        description: validate JWT access token (OIDC mode only)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: login-webhook
      path: /login/webhook
      operations:
      - name: loginwebhook
        method: POST
        description: GitHub webhook (GitHub mode only)
        inputParameters:
        - name: X-Hub-Signature
          in: header
          type: string
          required: true
        - name: X-Github-Event
          in: header
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: health
      path: /health
      operations:
      - name: health
        method: GET
        description: health endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: config
      path: /config
      operations:
      - name: getconfig
        method: GET
        description: get app config
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-update
      path: /v1/update
      operations:
      - name: omaha
        method: POST
        description: omaha endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps
      path: /api/apps
      operations:
      - name: paginateapps
        method: GET
        description: get Apps
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createapp
        method: POST
        description: create app
        inputParameters:
        - name: clone_from
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid
      path: /api/apps/{appIDorProductID}
      operations:
      - name: getapp
        method: GET
        description: get app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateapp
        method: PUT
        description: update app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteapp
        method: DELETE
        description: delete app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups
      path: /api/apps/{appIDorProductID}/groups
      operations:
      - name: paginategroups
        method: GET
        description: paginate groups of an app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: creategroup
        method: POST
        description: create group in app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid
      path: /api/apps/{appIDorProductID}/groups/{groupID}
      operations:
      - name: getgroup
        method: GET
        description: get group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updategroup
        method: PUT
        description: update group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletegroup
        method: DELETE
        description: delete group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-version
      path: /api/apps/{appIDorProductID}/groups/{groupID}/version_timeline
      operations:
      - name: getgroupversiontimeline
        method: GET
        description: get version timeline of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: duration
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-status-
      path: /api/apps/{appIDorProductID}/groups/{groupID}/status_timeline
      operations:
      - name: getgroupstatustimeline
        method: GET
        description: get status timeline of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: duration
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-instanc
      path: /api/apps/{appIDorProductID}/groups/{groupID}/instances_stats
      operations:
      - name: getgroupinstancestats
        method: GET
        description: get instance stats of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: duration
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-version
      path: /api/apps/{appIDorProductID}/groups/{groupID}/version_breakdown
      operations:
      - name: getgroupversionbreakdown
        method: GET
        description: get version breakdown of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-channels
      path: /api/apps/{appIDorProductID}/channels
      operations:
      - name: paginatechannels
        method: GET
        description: paginate channels of an app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createchannel
        method: POST
        description: create channel
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-channels-channelid
      path: /api/apps/{appIDorProductID}/channels/{channelID}
      operations:
      - name: getchannel
        method: GET
        description: get channel by id
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: channelID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatechannel
        method: PUT
        description: update channel by id
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: channelID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletechannel
        method: DELETE
        description: delete channel by id
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: channelID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-channels-channelid-floors
      path: /api/channels/{channelID}/floors
      operations:
      - name: paginatechannelfloors
        method: GET
        description: paginate floor packages of a channel
        inputParameters:
        - name: channelID
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-channels-channelid-floors-packageid
      path: /api/channels/{channelID}/floors/{packageID}
      operations:
      - name: setchannelfloor
        method: PUT
        description: Create or update a floor package relationship (idempotent operation)
        inputParameters:
        - name: channelID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: removechannelfloor
        method: DELETE
        description: remove package as floor for a channel
        inputParameters:
        - name: channelID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-packages
      path: /api/apps/{appIDorProductID}/packages
      operations:
      - name: paginatepackages
        method: GET
        description: paginate packages of an app
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        - name: searchVersion
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createpackage
        method: POST
        description: create package
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-packages-packageid
      path: /api/apps/{appIDorProductID}/packages/{packageID}
      operations:
      - name: getpackage
        method: GET
        description: get package given its packageID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatepackage
        method: PUT
        description: update package given its packageID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletepackage
        method: DELETE
        description: delete package given its packageID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-packages-packageid-flo
      path: /api/apps/{appIDorProductID}/packages/{packageID}/floor-channels
      operations:
      - name: getpackagefloorchannels
        method: GET
        description: get all channels where a package is marked as a floor
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: packageID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-instanc
      path: /api/apps/{appIDorProductID}/groups/{groupID}/instances
      operations:
      - name: getgroupinstances
        method: GET
        description: get instances of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: status
          in: query
          type: integer
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        - name: sortFilter
          in: query
          type: string
        - name: sortOrder
          in: query
          type: string
        - name: searchFilter
          in: query
          type: string
        - name: searchValue
          in: query
          type: string
        - name: duration
          in: query
          type: string
          required: true
        - name: version
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-instanc
      path: /api/apps/{appIDorProductID}/groups/{groupID}/instancescount
      operations:
      - name: getgroupinstancescount
        method: GET
        description: get instance count of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: duration
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-instanc
      path: /api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}
      operations:
      - name: getinstance
        method: GET
        description: get instance of a group given its groupID and appID
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: instanceID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-apps-appidorproductid-groups-groupid-instanc
      path: /api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}/status_history
      operations:
      - name: getinstancestatushistory
        method: GET
        description: get instance status_history.
        inputParameters:
        - name: appIDorProductID
          in: path
          type: string
          required: true
        - name: groupID
          in: path
          type: string
          required: true
        - name: instanceID
          in: path
          type: string
          required: true
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-instances-instanceid
      path: /api/instances/{instanceID}
      operations:
      - name: updateinstance
        method: PUT
        description: update instance
        inputParameters:
        - name: instanceID
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-activity
      path: /api/activity
      operations:
      - name: paginateactivity
        method: GET
        description: paginate activity
        inputParameters:
        - name: appIDorProductID
          in: query
          type: string
        - name: groupID
          in: query
          type: string
        - name: channelID
          in: query
          type: string
        - name: instanceID
          in: query
          type: string
        - name: version
          in: query
          type: string
        - name: severity
          in: query
          type: integer
        - name: start
          in: query
          type: string
          required: true
        - name: end
          in: query
          type: string
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: flatcar-container-linux-rest
    description: REST adapter for Nebraska.
    resources:
    - path: /login/cb
      name: logincb
      operations:
      - method: GET
        name: logincb
        description: GitHub OAuth callback (GitHub mode only)
        call: flatcar-container-linux.logincb
        outputParameters:
        - type: object
          mapping: $.
    - path: /login/validate_token
      name: validatetoken
      operations:
      - method: GET
        name: validatetoken
        description: validate JWT access token (OIDC mode only)
        call: flatcar-container-linux.validatetoken
        outputParameters:
        - type: object
          mapping: $.
    - path: /login/webhook
      name: loginwebhook
      operations:
      - method: POST
        name: loginwebhook
        description: GitHub webhook (GitHub mode only)
        call: flatcar-container-linux.loginwebhook
        outputParameters:
        - type: object
          mapping: $.
    - path: /health
      name: health
      operations:
      - method: GET
        name: health
        description: health endpoint
        call: flatcar-container-linux.health
        outputParameters:
        - type: object
          mapping: $.
    - path: /config
      name: getconfig
      operations:
      - method: GET
        name: getconfig
        description: get app config
        call: flatcar-container-linux.getconfig
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/update
      name: omaha
      operations:
      - method: POST
        name: omaha
        description: omaha endpoint
        call: flatcar-container-linux.omaha
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps
      name: paginateapps
      operations:
      - method: GET
        name: paginateapps
        description: get Apps
        call: flatcar-container-linux.paginateapps
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps
      name: createapp
      operations:
      - method: POST
        name: createapp
        description: create app
        call: flatcar-container-linux.createapp
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}
      name: getapp
      operations:
      - method: GET
        name: getapp
        description: get app
        call: flatcar-container-linux.getapp
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}
      name: updateapp
      operations:
      - method: PUT
        name: updateapp
        description: update app
        call: flatcar-container-linux.updateapp
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}
      name: deleteapp
      operations:
      - method: DELETE
        name: deleteapp
        description: delete app
        call: flatcar-container-linux.deleteapp
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups
      name: paginategroups
      operations:
      - method: GET
        name: paginategroups
        description: paginate groups of an app
        call: flatcar-container-linux.paginategroups
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups
      name: creategroup
      operations:
      - method: POST
        name: creategroup
        description: create group in app
        call: flatcar-container-linux.creategroup
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}
      name: getgroup
      operations:
      - method: GET
        name: getgroup
        description: get group given its groupID and appID
        call: flatcar-container-linux.getgroup
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}
      name: updategroup
      operations:
      - method: PUT
        name: updategroup
        description: update group given its groupID and appID
        call: flatcar-container-linux.updategroup
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}
      name: deletegroup
      operations:
      - method: DELETE
        name: deletegroup
        description: delete group given its groupID and appID
        call: flatcar-container-linux.deletegroup
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}/version_timeline
      name: getgroupversiontimeline
      operations:
      - method: GET
        name: getgroupversiontimeline
        description: get version timeline of a group given its groupID and appID
        call: flatcar-container-linux.getgroupversiontimeline
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}/status_timeline
      name: getgroupstatustimeline
      operations:
      - method: GET
        name: getgroupstatustimeline
        description: get status timeline of a group given its groupID and appID
        call: flatcar-container-linux.getgroupstatustimeline
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}/instances_stats
      name: getgroupinstancestats
      operations:
      - method: GET
        name: getgroupinstancestats
        description: get instance stats of a group given its groupID and appID
        call: flatcar-container-linux.getgroupinstancestats
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/groups/{groupID}/version_breakdown
      name: getgroupversionbreakdown
      operations:
      - method: GET
        name: getgroupversionbreakdown
        description: get version breakdown of a group given its groupID and appID
        call: flatcar-container-linux.getgroupversionbreakdown
        with:
          appIDorProductID: rest.appIDorProductID
          groupID: rest.groupID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/channels
      name: paginatechannels
      operations:
      - method: GET
        name: paginatechannels
        description: paginate channels of an app
        call: flatcar-container-linux.paginatechannels
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/channels
      name: createchannel
      operations:
      - method: POST
        name: createchannel
        description: create channel
        call: flatcar-container-linux.createchannel
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/channels/{channelID}
      name: getchannel
      operations:
      - method: GET
        name: getchannel
        description: get channel by id
        call: flatcar-container-linux.getchannel
        with:
          appIDorProductID: rest.appIDorProductID
          channelID: rest.channelID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/channels/{channelID}
      name: updatechannel
      operations:
      - method: PUT
        name: updatechannel
        description: update channel by id
        call: flatcar-container-linux.updatechannel
        with:
          appIDorProductID: rest.appIDorProductID
          channelID: rest.channelID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/channels/{channelID}
      name: deletechannel
      operations:
      - method: DELETE
        name: deletechannel
        description: delete channel by id
        call: flatcar-container-linux.deletechannel
        with:
          appIDorProductID: rest.appIDorProductID
          channelID: rest.channelID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/channels/{channelID}/floors
      name: paginatechannelfloors
      operations:
      - method: GET
        name: paginatechannelfloors
        description: paginate floor packages of a channel
        call: flatcar-container-linux.paginatechannelfloors
        with:
          channelID: rest.channelID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/channels/{channelID}/floors/{packageID}
      name: setchannelfloor
      operations:
      - method: PUT
        name: setchannelfloor
        description: Create or update a floor package relationship (idempotent operation)
        call: flatcar-container-linux.setchannelfloor
        with:
          channelID: rest.channelID
          packageID: rest.packageID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/channels/{channelID}/floors/{packageID}
      name: removechannelfloor
      operations:
      - method: DELETE
        name: removechannelfloor
        description: remove package as floor for a channel
        call: flatcar-container-linux.removechannelfloor
        with:
          channelID: rest.channelID
          packageID: rest.packageID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/packages
      name: paginatepackages
      operations:
      - method: GET
        name: paginatepackages
        description: paginate packages of an app
        call: flatcar-container-linux.paginatepackages
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/packages
      name: createpackage
      operations:
      - method: POST
        name: createpackage
        description: create package
        call: flatcar-container-linux.createpackage
        with:
          appIDorProductID: rest.appIDorProductID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/apps/{appIDorProductID}/packa

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flatcar-container-linux/refs/heads/main/capabilities/flatcar-container-linux-capability.yaml