Skip to content

[New] POST /networking/ips/share; GET /networking/ipv6/ranges/{range} #576

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Dec 15, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 159 additions & 3 deletions openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10307,6 +10307,90 @@ paths:
--region us-east \
--assignments.address 2001:db8:3c4d:15::/64 \
--assignments.linode_id 123
/networking/ips/share:
x-linode-cli-command: networking
post:
servers:
- url: https://api.linode.com/v4beta
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this isn't in beta

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem reverting, but I'm getting {"errors": [{"reason": "Method Not Allowed"}]} when trying to hit the v4 server

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added v4 server in the next line and removed beta status references -- beta tag still shows up in the docs at the moment, but the CLI won't work with the command until the v4 server issue is fixed for this command otherwise

- url: https://api.linode.com/v4
x-linode-grant: read_write
tags:
- Networking
summary: IP Addresses Share
description: |
Configure shared IPs.

IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if
the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be
automatically rerouted to secondary Linodes at the configured shared IP addresses.

IP failover requires configuration of a failover service (such as [Keepalived](/docs/guides/ip-failover-keepalived))
within the internal system of the primary Linode.

**Note**: IPv6 range sharing has limited availability in certain regions. Please contact customer support for
assistance in enabling IPv6 range sharing for your Linodes.
operationId: shareIPs
x-linode-cli-action: ip-share
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the same cli action as the older v4 share endpoint. Is that going to cause issues?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't seem to cause issues but should be fixed -- thank you for catching this

security:
- personalAccessToken: []
- oauth:
- ips:read_write
- linodes:read_write
requestBody:
description: Information about what IPs to share with which Linode.
required: true
content:
application/json:
schema:
required:
- linode_id
- ips
properties:
linode_id:
type: integer
description: >
The ID of the primary Linode that the addresses will be shared with.
example: 123
ips:
type: array
items:
type: string
format: ip
description: |
A list of secondary Linode IPs to share with the primary Linode.
* Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths)
* Can include both private and public IPv4 addresses.
* You must have access to all of these addresses and they must be in the same Region as the primary
Linode.
* Enter an empty array to remove all shared IP addresses.
responses:
'200':
description: IP Address sharing successful.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"linode_id": 123,
"ips": [
"192.0.2.1",
"2001:db8:3c4d:15::"
]
}' \
https://api.linode.com/v4beta2/networking/ips/share
- lang: CLI
source: >
linode-cli networking ip-share \
--linode_id 123 \
--ips 192.0.2.1 \
--ips 2001:db8:3c4d:15::
/networking/ipv4/assign:
x-linode-cli-command: networking
post:
Expand Down Expand Up @@ -10407,13 +10491,13 @@ paths:
x-linode-grant: read_write
tags:
- Networking
summary: IP Sharing Configure
summary: IPv4 Sharing Configure
description: >
Configure shared IPs. A shared IP may be brought up on a Linode other
than the one it lists in its response. This can be used to allow one
Linode to begin serving requests should another become unresponsive.
operationId: shareIPs
x-linode-cli-action: ip-share
operationId: shareIPv4s
x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
Expand Down Expand Up @@ -10682,12 +10766,42 @@ paths:
type: string
format: ipv6
x-linode-cli-command: networking
get:
tags:
- Networking
summary: IPv6 Range View
description: |
View IPv6 range information.
operationId: getIPv6Range
x-linode-cli-action: v6-range-view
security:
- personalAccessToken: []
- oauth:
- ips:read
responses:
'200':
description: Returns IPv6 range information.
content:
application/json:
schema:
$ref: '#/components/schemas/IPv6RangeBGP'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/networking/ipv6/ranges/2001:0db8::
- lang: CLI
source: >
linode-cli networking v6-range-view 2001:0db8::
delete:
tags:
- Networking
summary: IPv6 Range Delete
description: |
Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.

**Note:** Shared IPv6 ranges cannot be deleted at this time. Please contact Customer Support for assistance.
operationId: deleteIPv6Range
x-linode-cli-action: v6-range-delete
security:
Expand Down Expand Up @@ -18462,6 +18576,48 @@ components:
The last address in this block of IPv6 addresses.
example: '2600:3c01::ffff:ffff:ffff:ffff'
nullable: true
IPv6RangeBGP:
type: object
description: >
An object representing an IPv6 range.
properties:
range:
type: string
description: >
The IPv6 range of addresses in this pool.
example: '2600:3c01::'
readOnly: true
x-linode-cli-display: 1
prefix:
type: integer
description: >
The prefix length of the address, denoting how many addresses can be
assigned from this range calculated as 2 <sup>128-prefix</sup>.
example: 64
x-linode-cli-display: 2
region:
type: string
description: >
The region for this range of IPv6 addresses.
example: us-east
readOnly: true
x-linode-cli-display: 3
is_bgp:
type: boolean
description: >
Whether this IPv6 range is shared.
example: false
readOnly: true
linodes:
type: array
items:
type: integer
example:
- 123
description: >
A list of Linodes targeted by this IPv6 range. Includes Linodes with IP sharing.
readOnly: true
x-linode-cli-display: 4
Kernel:
type: object
description: Linux kernel object
Expand Down