Amazon Lightsail · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Amazon Lightsail Instances API

23 actions 23 updates phrasing extends openapi/amazon-lightsail-instances-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Amazon Lightsail's API. It is a proposal applied on top of the contract, not a document Amazon Lightsail publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 23 · first 16 shown; the file carries all of them

$.info
$.paths['/instances'].get
$.paths['/instances'].post
$.paths['/instances/{instanceName}'].get
$.paths['/instances/{instanceName}'].delete
$.paths['/instances/{instanceName}/start'].post
$.paths['/instances/{instanceName}/stop'].post
$.paths['/ls/api/2016-11-28/CloseInstancePublicPorts'].post
$.paths['/ls/api/2016-11-28/CreateInstances'].post
$.paths['/ls/api/2016-11-28/DeleteInstance'].post
$.paths['/ls/api/2016-11-28/GetInstance'].post
$.paths['/ls/api/2016-11-28/GetInstanceAccessDetails'].post
$.paths['/ls/api/2016-11-28/GetInstanceMetricData'].post
$.paths['/ls/api/2016-11-28/GetInstancePortStates'].post
$.paths['/ls/api/2016-11-28/GetInstanceState'].post
$.paths['/ls/api/2016-11-28/GetInstances'].post

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 Amazon Lightsail Instances API
  version: 1.0.0
extends: openapi/amazon-lightsail-instances-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: 22
- target: $.paths['/instances'].get
  update:
    x-apievangelist-phrasing:
      intent: List instances via the REST-style /instances path
      effect: read
      questions:
      - Is there a plain GET /instances resource path for listing my servers?
      - Which REST-style endpoint lists instances without the JSON action body?
      instructions:
      - text: List my instances with a GET on the REST-style /instances path.
      - text: Call GET /instances to list all virtual private servers.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/instances'].post
  update:
    x-apievangelist-phrasing:
      intent: Create instances via the REST-style /instances path
      effect: write
      questions:
      - Can I create instances by POSTing to the /instances resource path?
      - What does the resource-style POST /instances endpoint do?
      instructions:
      - text: Create instances with a POST to the REST-style /instances path.
      - text: Use POST /instances to launch new servers.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/instances/{instanceName}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an instance via the REST-style /instances path
      effect: read
      questions:
      - Can I fetch one server with a plain GET on its /instances resource path?
      - Which resource-path endpoint returns a single instance by name?
      instructions:
      - text: GET /instances/{instanceName} to read that server.
        slots:
          instanceName: path.instanceName
      - text: Fetch instance {instanceName} through the REST-style resource path.
        slots:
          instanceName: path.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/instances/{instanceName}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an instance via an HTTP DELETE on /instances
      effect: destructive
      questions:
      - Can I remove a server with an HTTP DELETE on its /instances path?
      - Is there a REST-style DELETE endpoint for instances?
      instructions:
      - text: Send DELETE /instances/{instanceName} to remove that server.
        slots:
          instanceName: path.instanceName
      - text: Delete instance {instanceName} using the REST-style resource path.
        slots:
          instanceName: path.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/instances/{instanceName}/start'].post
  update:
    x-apievangelist-phrasing:
      intent: Start an instance via the REST-style /start path
      effect: write
      questions:
      - Can I boot a server by POSTing to its /start sub-path?
      - Which REST-style path starts an instance?
      instructions:
      - text: POST to /instances/{instanceName}/start.
        slots:
          instanceName: path.instanceName
      - text: Start {instanceName} through the REST-style /start path.
        slots:
          instanceName: path.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/instances/{instanceName}/stop'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop an instance via the REST-style /stop path
      effect: write
      questions:
      - Can I shut down a server by POSTing to its /stop sub-path?
      - Which REST-style path stops an instance?
      instructions:
      - text: POST to /instances/{instanceName}/stop.
        slots:
          instanceName: path.instanceName
      - text: Stop {instanceName} through the REST-style /stop path.
        slots:
          instanceName: path.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/CloseInstancePublicPorts'].post
  update:
    x-apievangelist-phrasing:
      intent: Close a firewall port on an instance
      effect: write
      questions:
      - How do I close port 22 to the public on my instance?
      - Can I remove one firewall rule without touching the others?
      instructions:
      - text: Close port {portInfo} on {instanceName}.
        slots:
          portInfo: requestBody.portInfo
          instanceName: requestBody.instanceName
      - text: Remove the firewall rule {portInfo} from instance {instanceName}.
        slots:
          portInfo: requestBody.portInfo
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/CreateInstances'].post
  update:
    x-apievangelist-phrasing:
      intent: Launch new instances from a blueprint
      effect: write
      questions:
      - How do I launch a new Lightsail server running WordPress or Ubuntu?
      - Can I pass a launch script and SSH key when creating an instance?
      - Can I create several identical instances in one request?
      instructions:
      - text: Create instances {instanceNames} in {availabilityZone} from blueprint {blueprintId} on bundle {bundleId}.
        slots:
          instanceNames: requestBody.instanceNames
          availabilityZone: requestBody.availabilityZone
          blueprintId: requestBody.blueprintId
          bundleId: requestBody.bundleId
      - text: Launch {instanceNames} ({blueprintId}, {bundleId}) in {availabilityZone} with key pair {keyPairName} and user data {userData}.
        slots:
          instanceNames: requestBody.instanceNames
          blueprintId: requestBody.blueprintId
          bundleId: requestBody.bundleId
          availabilityZone: requestBody.availabilityZone
          keyPairName: requestBody.keyPairName
          userData: requestBody.userData
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/DeleteInstance'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete an instance
      effect: destructive
      questions:
      - How do I permanently delete a Lightsail server?
      - Can I force-delete an instance's add-ons like automatic snapshots along with it?
      instructions:
      - text: Delete instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Delete {instanceName} and force-delete its add-ons ({forceDeleteAddOns}).
        slots:
          instanceName: requestBody.instanceName
          forceDeleteAddOns: requestBody.forceDeleteAddOns
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstance'].post
  update:
    x-apievangelist-phrasing:
      intent: Get details of one instance
      effect: read
      questions:
      - What's the public IP, plan and blueprint of a particular server?
      - Which disks and add-ons are on a specific instance?
      instructions:
      - text: Get details for instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Show the IP addresses and plan of {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstanceAccessDetails'].post
  update:
    x-apievangelist-phrasing:
      intent: Get temporary SSH or RDP access credentials
      effect: read
      questions:
      - How do I get temporary SSH keys to connect to my instance?
      - Can I get RDP login details for a Windows instance?
      instructions:
      - text: Get temporary access details for {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Give me {protocol} credentials to connect to {instanceName}.
        slots:
          protocol: requestBody.protocol
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstanceMetricData'].post
  update:
    x-apievangelist-phrasing:
      intent: Get CPU, network or status metrics for an instance
      effect: read
      questions:
      - How much CPU has my instance been using this week?
      - Can I check whether my instance is running out of burst capacity?
      instructions:
      - text: Get {metricName} for instance {instanceName} from {startTime} to {endTime} every {period}s as {statistics} in {unit}.
        slots:
          metricName: requestBody.metricName
          instanceName: requestBody.instanceName
          startTime: requestBody.startTime
          endTime: requestBody.endTime
          period: requestBody.period
          statistics: requestBody.statistics
          unit: requestBody.unit
      - text: Show instance {instanceName} {metricName} since {startTime}.
        slots:
          instanceName: requestBody.instanceName
          metricName: requestBody.metricName
          startTime: requestBody.startTime
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstancePortStates'].post
  update:
    x-apievangelist-phrasing:
      intent: Show an instance's open firewall ports
      effect: read
      questions:
      - Which ports are open on my instance's firewall?
      - What IP ranges are allowed to reach each open port?
      instructions:
      - text: List the firewall port states for {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Show which ports and source IPs are allowed on {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstanceState'].post
  update:
    x-apievangelist-phrasing:
      intent: Check whether an instance is running
      effect: read
      questions:
      - Is my server running, stopped or pending right now?
      - What state is a given instance in?
      instructions:
      - text: Get the state of instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Check if {instanceName} is running.
        slots:
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/GetInstances'].post
  update:
    x-apievangelist-phrasing:
      intent: List all instances
      effect: read
      questions:
      - Which Lightsail servers do I have in this region?
      - Can I page through all my instances with a page token?
      instructions:
      - text: List all my Lightsail instances.
      - text: Get the next page of instances using {pageToken}.
        slots:
          pageToken: requestBody.pageToken
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/OpenInstancePublicPorts'].post
  update:
    x-apievangelist-phrasing:
      intent: Open an additional firewall port
      effect: write
      questions:
      - How do I open port 443 on my instance without changing other rules?
      - Can I restrict a newly opened port to certain IP addresses?
      instructions:
      - text: Open port {portInfo} on {instanceName}.
        slots:
          portInfo: requestBody.portInfo
          instanceName: requestBody.instanceName
      - text: Add firewall rule {portInfo} to {instanceName}, keeping existing rules.
        slots:
          portInfo: requestBody.portInfo
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/PutInstancePublicPorts'].post
  update:
    x-apievangelist-phrasing:
      intent: Replace all firewall rules on an instance
      effect: write
      questions:
      - Can I overwrite the whole firewall of an instance with a new set of rules?
      - What happens to ports I leave out when I replace an instance's rules?
      instructions:
      - text: Replace all firewall rules on {instanceName} with {portInfos}.
        slots:
          instanceName: requestBody.instanceName
          portInfos: requestBody.portInfos
      - text: Set the full list of open ports on {instanceName} to {portInfos}.
        slots:
          instanceName: requestBody.instanceName
          portInfos: requestBody.portInfos
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/RebootInstance'].post
  update:
    x-apievangelist-phrasing:
      intent: Reboot an instance
      effect: write
      questions:
      - How do I restart a Lightsail server that's unresponsive?
      - Does rebooting an instance keep its public IP?
      instructions:
      - text: Reboot instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Restart {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/StartInstance'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a stopped instance
      effect: write
      questions:
      - How do I boot a stopped Lightsail server?
      - Will my instance get a new public IP when I start it again?
      instructions:
      - text: Start instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Power on the stopped server {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/StopInstance'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop a running instance
      effect: write
      questions:
      - How do I shut down a running Lightsail server?
      - Can I force-stop an instance that's stuck stopping?
      instructions:
      - text: Stop instance {instanceName}.
        slots:
          instanceName: requestBody.instanceName
      - text: Force-stop {instanceName} ({force}).
        slots:
          instanceName: requestBody.instanceName
          force: requestBody.force
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/UpdateInstanceMetadataOptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Change an instance's metadata service settings
      effect: write
      questions:
      - How do I require IMDSv2 tokens on my instance?
      - Can I turn off the instance metadata endpoint or enable it over IPv6?
      instructions:
      - text: Require metadata tokens on {instanceName} by setting httpTokens to {httpTokens}.
        slots:
          instanceName: requestBody.instanceName
          httpTokens: requestBody.httpTokens
      - text: Set the metadata endpoint of {instanceName} to {httpEndpoint}.
        slots:
          instanceName: requestBody.instanceName
          httpEndpoint: requestBody.httpEndpoint
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ls/api/2016-11-28/setup-instance-https'].post
  update:
    x-apievangelist-phrasing:
      intent: Set up HTTPS on an instance's website
      effect: write
      questions:
      - How do I add a free SSL certificate to the website on my instance?
      - Can Lightsail configure HTTPS for several domain names on one server?
      instructions:
      - text: Set up HTTPS on {instanceName} for {domainNames} using {certificateProvider}, contact {emailAddress}.
        slots:
          instanceName: requestBody.instanceName
          domainNames: requestBody.domainNames
          certificateProvider: requestBody.certificateProvider
          emailAddress: requestBody.emailAddress
      - text: Secure the site on {instanceName} ({domainNames}) with a {certificateProvider} certificate registered to {emailAddress}.
        slots:
          instanceName: requestBody.instanceName
          domainNames: requestBody.domainNames
          certificateProvider: requestBody.certificateProvider
          emailAddress: requestBody.emailAddress
      method: generated
      generated: '2026-09-26'