The Things Network / The Things Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Things Stack — Application Server Application Package…

10 actions 10 updates phrasing extends openapi/the-things-network-applicationpackageregistry-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for The Things Network / The Things Stack's API. It is a proposal applied on top of the contract, not a document The Things Network / The Things Stack publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/as/applications/{application_ids.application_id}/devices/{device_id}/packages'].get
$.paths['/as/applications/{application_ids.application_id}/packages/associations/{f_port}'].delete
$.paths['/as/applications/{association.ids.end_device_ids.application_ids.application_id}/devices/{association.ids.end_device_ids.device_id}/packages/associations/{association.ids.f_port}'].put
$.paths['/as/applications/{default.ids.application_ids.application_id}/packages/associations/{default.ids.f_port}'].put
$.paths['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/packages/associations/{f_port}'].delete
$.paths['/as/applications/{ids.application_ids.application_id}/devices/{ids.device_id}/packages/associations'].get
$.paths['/as/applications/{ids.application_ids.application_id}/packages/associations/{ids.f_port}'].get
$.paths['/as/applications/{ids.application_id}/packages/associations'].get
$.paths['/as/applications/{ids.end_device_ids.application_ids.application_id}/devices/{ids.end_device_ids.device_id}/packages/associations/{ids.f_port}'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Things Stack — Application Server Application Package…
  version: 1.0.0
extends: openapi/the-things-network-applicationpackageregistry-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 9
- target: $.paths['/as/applications/{application_ids.application_id}/devices/{device_id}/packages'].get
  update:
    x-apievangelist-phrasing:
      intent: List application packages available for a device
      effect: read
      questions:
      - Which application packages can I use with a given end device?
      - What packages does the Application Server offer for my device?
      instructions:
      - text: List the available application packages for device {device_id} in application {application_id}.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      - text: Show which packages end device {device_id} of {application_id} can be associated with.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{application_ids.application_id}/packages/associations/{f_port}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove an application-wide package default on an FPort
      effect: destructive
      questions:
      - How do I remove the default package association for an FPort across my whole application?
      - Can I clear an application-level package default without touching device associations?
      instructions:
      - text: Delete the default package association on FPort {f_port} of application {application_id}.
        slots:
          f_port: path.f_port
          application_id: path.application_ids.application_id
      - text: Remove application {application_id}'s default package on FPort {f_port}.
        slots:
          application_id: path.application_ids.application_id
          f_port: path.f_port
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{association.ids.end_device_ids.application_ids.application_id}/devices/{association.ids.end_device_ids.device_id}/packages/associations/{association.ids.f_port}'].put
  update:
    x-apievangelist-phrasing:
      intent: Associate a package with a device FPort
      effect: write
      questions:
      - How do I attach an application package to a specific FPort on one end device?
      - Can I update an existing device package association in place?
      instructions:
      - text: Associate package {association} with FPort {f_port} of device {device_id} in application {application_id}.
        slots:
          association: requestBody.association
          f_port: path.association.ids.f_port
          device_id: path.association.ids.end_device_ids.device_id
          application_id: path.association.ids.end_device_ids.application_ids.application_id
      - text: Set the device-level package association on FPort {f_port} for {device_id} in {application_id}.
        slots:
          f_port: path.association.ids.f_port
          device_id: path.association.ids.end_device_ids.device_id
          application_id: path.association.ids.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{default.ids.application_ids.application_id}/packages/associations/{default.ids.f_port}'].put
  update:
    x-apievangelist-phrasing:
      intent: Set an application-wide package default on an FPort
      effect: write
      questions:
      - How do I make a package the default on an FPort for every device in my application?
      - Can I set an application-level package association instead of configuring each device?
      instructions:
      - text: Set default package {default} on FPort {f_port} for application {application_id}.
        slots:
          default: requestBody.default
          f_port: path.default.ids.f_port
          application_id: path.default.ids.application_ids.application_id
      - text: Make FPort {f_port} of application {application_id} use a default package association.
        slots:
          f_port: path.default.ids.f_port
          application_id: path.default.ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/packages/associations/{f_port}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a device's package association on an FPort
      effect: destructive
      questions:
      - How do I remove the package association from one end device's FPort?
      - Can I detach a package from a single device without changing the application default?
      instructions:
      - text: Delete the package association on FPort {f_port} of device {device_id} in application {application_id}.
        slots:
          f_port: path.f_port
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Detach the package from device {device_id} FPort {f_port} in {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          f_port: path.f_port
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{ids.application_ids.application_id}/devices/{ids.device_id}/packages/associations'].get
  update:
    x-apievangelist-phrasing:
      intent: List a device's package associations
      effect: read
      questions:
      - Which package associations are set on my end device's FPorts?
      - Can I page through all the package associations for one device?
      instructions:
      - text: List package associations for device {device_id} in application {application_id}.
        slots:
          device_id: path.ids.device_id
          application_id: path.ids.application_ids.application_id
      - text: Show {limit} device package associations per page for {device_id} in {application_id}.
        slots:
          limit: query.limit
          device_id: path.ids.device_id
          application_id: path.ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{ids.application_ids.application_id}/packages/associations/{ids.f_port}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an application-wide package default on an FPort
      effect: read
      questions:
      - What default package is registered on a given FPort for my application?
      - Is there an application-level package default on this FPort?
      instructions:
      - text: Show the default package association on FPort {f_port} of application {application_id}.
        slots:
          f_port: path.ids.f_port
          application_id: path.ids.application_ids.application_id
      - text: Get application {application_id}'s default package for FPort {f_port}.
        slots:
          application_id: path.ids.application_ids.application_id
          f_port: path.ids.f_port
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{ids.application_id}/packages/associations'].get
  update:
    x-apievangelist-phrasing:
      intent: List an application's default package associations
      effect: read
      questions:
      - Which FPorts in my application have a default package association?
      - Can I list every application-level package default at once?
      instructions:
      - text: List the default package associations of application {application_id}.
        slots:
          application_id: path.ids.application_id
      - text: Show page {page} of application {application_id}'s default package associations.
        slots:
          page: query.page
          application_id: path.ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{ids.end_device_ids.application_ids.application_id}/devices/{ids.end_device_ids.device_id}/packages/associations/{ids.f_port}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a device's package association on an FPort
      effect: read
      questions:
      - Which package is associated with a specific FPort on my end device?
      - Can I see the device-level association settings for one FPort?
      instructions:
      - text: Show the package association on FPort {f_port} of device {device_id} in application {application_id}.
        slots:
          f_port: path.ids.f_port
          device_id: path.ids.end_device_ids.device_id
          application_id: path.ids.end_device_ids.application_ids.application_id
      - text: Get device {device_id}'s package on FPort {f_port} in {application_id}.
        slots:
          device_id: path.ids.end_device_ids.device_id
          f_port: path.ids.f_port
          application_id: path.ids.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'