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.
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
# 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'