Skip to content

Commit a80fbaa

Browse files
committed
Linode Create, Config Create/Update required
1 parent 3566ae3 commit a80fbaa

File tree

1 file changed

+87
-149
lines changed

1 file changed

+87
-149
lines changed

openapi.yaml

Lines changed: 87 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -4189,7 +4189,6 @@ paths:
41894189
required:
41904190
- type
41914191
- region
4192-
- purpose
41934192
type: object
41944193
allOf:
41954194
- $ref: '#/components/schemas/LinodeRequest'
@@ -5116,7 +5115,11 @@ paths:
51165115
content:
51175116
application/json:
51185117
schema:
5119-
$ref: '#/components/schemas/LinodeConfig'
5118+
required:
5119+
- label
5120+
- devices
5121+
allOf:
5122+
- $ref: '#/components/schemas/LinodeConfig'
51205123
responses:
51215124
'200':
51225125
description: |
@@ -5240,68 +5243,7 @@ paths:
52405243
content:
52415244
application/json:
52425245
schema:
5243-
required:
5244-
- purpose
5245-
properties:
5246-
id:
5247-
$ref: '#/components/schemas/LinodeConfig/properties/id'
5248-
kernel:
5249-
$ref: '#/components/schemas/LinodeConfig/properties/kernel'
5250-
comments:
5251-
$ref: '#/components/schemas/LinodeConfig/properties/comments'
5252-
memory_limit:
5253-
$ref: '#/components/schemas/LinodeConfig/properties/memory_limit'
5254-
run_level:
5255-
$ref: '#/components/schemas/LinodeConfig/properties/run_level'
5256-
virt_mode:
5257-
$ref: '#/components/schemas/LinodeConfig/properties/virt_mode'
5258-
helpers:
5259-
$ref: '#/components/schemas/LinodeConfig/properties/helpers'
5260-
label:
5261-
$ref: '#/components/schemas/LinodeConfig/properties/label'
5262-
devices:
5263-
type: object
5264-
description: >
5265-
A dictionary of device disks to use as a device map in a Linode's configuration profile.
5266-
5267-
* An empty device disk dictionary or a dictionary with empty values for device slots is allowed.
5268-
If no devices are specified, booting from this configuration will hold waiting for a device to
5269-
exist before being able to boot. <br /><br />
5270-
5271-
**Note**: An empty device disk dictionary or a dictionary with empty values for device slots
5272-
previously errored in all cases.
5273-
properties:
5274-
sda:
5275-
$ref: '#/components/schemas/Device'
5276-
sdb:
5277-
$ref: '#/components/schemas/Device'
5278-
sdc:
5279-
$ref: '#/components/schemas/Device'
5280-
sdd:
5281-
$ref: '#/components/schemas/Device'
5282-
sde:
5283-
$ref: '#/components/schemas/Device'
5284-
sdf:
5285-
$ref: '#/components/schemas/Device'
5286-
sdg:
5287-
$ref: '#/components/schemas/Device'
5288-
sdh:
5289-
$ref: '#/components/schemas/Device'
5290-
root_device:
5291-
type: string
5292-
pattern: a-z, A-Z, 0-9, /, _, -
5293-
description: >
5294-
The root device to boot.
5295-
5296-
* If no value or an invalid value is provided, root device will default
5297-
to `/dev/sda`.<br /><br />
5298-
**Note**: Previous validation errored when no value was provided for root device and an empty device
5299-
map existed for the Linode's configuration profile.
5300-
5301-
* If the device specified at the root device location is not mounted,
5302-
the Linode will not boot until a device is mounted.
5303-
interfaces:
5304-
$ref: '#/components/schemas/LinodeConfig/properties/interfaces'
5246+
$ref: '#/components/schemas/LinodeConfig'
53055247
x-code-samples:
53065248
- lang: Shell
53075249
source: >
@@ -16308,8 +16250,7 @@ components:
1630816250

1630916251
* An empty device disk dictionary or a dictionary with empty values for device slots is allowed.
1631016252

16311-
* If no devices are specified, booting from this configuration will hold waiting for a device
16312-
to exist before being able to boot.
16253+
* If no devices are specified, booting from this configuration will hold until a device exists that allows the boot process to start.
1631316254
properties:
1631416255
sda:
1631516256
$ref: '#/components/schemas/Device'
@@ -17754,84 +17695,6 @@ components:
1775417695
a Linode Disk, and will become "available" shortly. Images in a
1775517696
"pending_upload" status are waiting for data to be [uploaded](/docs/api/images/#image-upload),
1775617697
and become "available" after the upload and processing are complete.
17757-
LinodeConfigInterface:
17758-
type: object
17759-
description: >
17760-
The Network Interface to apply to this Linode's configuration profile.
17761-
properties:
17762-
label:
17763-
type: string
17764-
minLength: 1
17765-
maxLength: 64
17766-
pattern: '/[a-z0-9-]+/'
17767-
x-linode-filterable: true
17768-
nullable: true
17769-
description: |
17770-
The name of this interface.
17771-
17772-
Required for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
17773-
17774-
If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center region. To view your active VLANs, use the [VLANs List](/docs/api/networking/#vlans-list) endpoint.
17775-
17776-
May only consist of ASCII letters, numbers, and dashes (`-`).
17777-
17778-
Must be unique among the Linode's interfaces.
17779-
example: example-interface
17780-
ipam_address:
17781-
type: string
17782-
format: ip/netmask
17783-
nullable: true
17784-
description: |
17785-
This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.
17786-
17787-
Only used for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
17788-
17789-
The Linode is configured to use this address for the associated interface upon reboot if Network Helper is enabled. If Network Helper is disabled, the address can be enabled with [manual static IP configuration](/docs/guides/linux-static-ip-configuration/).
17790-
17791-
Must be unique among the Linode's interfaces.
17792-
example: '10.0.0.1/24'
17793-
purpose:
17794-
type: string
17795-
enum:
17796-
- public
17797-
- vlan
17798-
description: |
17799-
The type of interface.
17800-
17801-
* `public`
17802-
* Only one `public` interface per Linode can be defined.
17803-
* The Linode's default public IPv4 address is assigned to the `public` interface.
17804-
* If no `public` interface is defined, the Linode is not reachable via the public internet; access can only be established via LISH or other Linodes connected to the same VLAN.
17805-
17806-
* `vlan`
17807-
* Configuring a `vlan` purpose interface attaches this Linode to the VLAN with the specified `label`.
17808-
* The Linode is configured to use the specified `ipam_address`, if any.
17809-
example: vlan
17810-
LinodeConfigInterfaces:
17811-
type: array
17812-
items:
17813-
$ref: '#/components/schemas/LinodeConfigInterface'
17814-
description: |
17815-
An array of Network Interfaces to add to this Linode's Configuration Profile.
17816-
17817-
Up to three interface objects can be entered in this array. The position in the array determines the interface to which the settings apply:
17818-
17819-
- First/0: eth0
17820-
- Second/1: eth1
17821-
- Third/2: eth2
17822-
17823-
When updating a Linode's interfaces, *each interface must be redefined*. An empty interfaces array results in a default public interface configuration only.
17824-
17825-
If no public interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration.
17826-
17827-
**Note:** Changes to Linode interface configurations can be enabled by rebooting the Linode.
17828-
17829-
**Note:** Only Next Generation Network (NGN) data centers support VLANs. Use the Regions ([/regions](/docs/api/regions/)) endpoint to view the capabilities of data center regions.
17830-
If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center,
17831-
the migration or cloning will not initiate. If a Linode cannot be migrated because of an incompatibility,
17832-
you will be prompted to select a different data center or contact support.
17833-
17834-
**Note:** See our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/) to view additional [limitations](/docs/guides/getting-started-with-vlans/#limitations).
1783517698
Invoice:
1783617699
type: object
1783717700
description: Account Invoice object
@@ -18672,10 +18535,6 @@ components:
1867218535
example: true
1867318536
LinodeConfig:
1867418537
type: object
18675-
required:
18676-
- label
18677-
- devices
18678-
- purpose
1867918538
properties:
1868018539
id:
1868118540
type: integer
@@ -18770,8 +18629,87 @@ components:
1877018629

1877118630
* If the device specified at the root device location is not mounted,
1877218631
the Linode will not boot until a device is mounted.
18773-
1877418632
example: /dev/sda
18633+
LinodeConfigInterface:
18634+
type: object
18635+
description: >
18636+
The Network Interface to apply to this Linode's configuration profile.
18637+
properties:
18638+
label:
18639+
type: string
18640+
minLength: 1
18641+
maxLength: 64
18642+
pattern: '/[a-z0-9-]+/'
18643+
x-linode-filterable: true
18644+
nullable: true
18645+
description: |
18646+
The name of this interface.
18647+
18648+
Required for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
18649+
18650+
If the VLAN label is new, a VLAN is created. Up to 10 VLANs can be created in each data center region. To view your active VLANs, use the [VLANs List](/docs/api/networking/#vlans-list) endpoint.
18651+
18652+
May only consist of ASCII letters, numbers, and dashes (`-`).
18653+
18654+
Must be unique among the Linode's interfaces.
18655+
example: example-interface
18656+
ipam_address:
18657+
type: string
18658+
format: ip/netmask
18659+
nullable: true
18660+
description: |
18661+
This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.
18662+
18663+
Only used for `vlan` purpose interfaces. Must be an empty string or `null` for `public` purpose interfaces.
18664+
18665+
The Linode is configured to use this address for the associated interface upon reboot if Network Helper is enabled. If Network Helper is disabled, the address can be enabled with [manual static IP configuration](/docs/guides/linux-static-ip-configuration/).
18666+
18667+
Must be unique among the Linode's interfaces.
18668+
example: '10.0.0.1/24'
18669+
purpose:
18670+
type: string
18671+
enum:
18672+
- public
18673+
- vlan
18674+
description: |
18675+
The type of interface.
18676+
18677+
* `public`
18678+
* Only one `public` interface per Linode can be defined.
18679+
* The Linode's default public IPv4 address is assigned to the `public` interface.
18680+
* If no `public` interface is defined, the Linode is not reachable via the public internet; access can only be established via LISH or other Linodes connected to the same VLAN.
18681+
18682+
* `vlan`
18683+
* Configuring a `vlan` purpose interface attaches this Linode to the VLAN with the specified `label`.
18684+
* The Linode is configured to use the specified `ipam_address`, if any.
18685+
example: vlan
18686+
LinodeConfigInterfaces:
18687+
type: array
18688+
items:
18689+
$ref: '#/components/schemas/LinodeConfigInterface'
18690+
required:
18691+
- purpose
18692+
description: |
18693+
An array of Network Interfaces to add to this Linode's Configuration Profile.
18694+
18695+
Up to three interface objects can be entered in this array. The position in the array determines the interface to which the settings apply:
18696+
18697+
- First/0: eth0
18698+
- Second/1: eth1
18699+
- Third/2: eth2
18700+
18701+
When updating a Linode's interfaces, *each interface must be redefined*. An empty interfaces array results in a default public interface configuration only.
18702+
18703+
If no public interface is configured, public IP addresses are still assigned to the Linode but will not be usable without manual configuration.
18704+
18705+
**Note:** Changes to Linode interface configurations can be enabled by rebooting the Linode.
18706+
18707+
**Note:** Only Next Generation Network (NGN) data centers support VLANs. Use the Regions ([/regions](/docs/api/regions/)) endpoint to view the capabilities of data center regions.
18708+
If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center,
18709+
the migration or cloning will not initiate. If a Linode cannot be migrated because of an incompatibility,
18710+
you will be prompted to select a different data center or contact support.
18711+
18712+
**Note:** See our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/) to view additional [limitations](/docs/guides/getting-started-with-vlans/#limitations).
1877518713
LinodeRequest:
1877618714
type: object
1877718715
description: Common properties for creating and rebuilding Linodes.

0 commit comments

Comments
 (0)