Skip to main content
PATCH
/
cloud
/
v1
/
ports
/
{project_id}
/
{region_id}
/
{port_id}
Update port
curl --request PATCH \
  --url https://api.gcore.com/cloud/v1/ports/{project_id}/{region_id}/{port_id} \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "allowed_address_pairs": [
    {
      "ip_address": "192.168.123.20"
    },
    {
      "ip_address": "192.168.0.0/17"
    }
  ],
  "ip_assignments": [
    {
      "ip_address": "127.0.0.1",
      "subnet_id": "<string>"
    }
  ],
  "port_security_enabled": true,
  "security_group_ids": [
    "351b0dd7-ca09-431c-be53-935db3785067"
  ],
  "tags": {}
}
'
{
  "tasks": [
    "d478ae29-dedc-4869-82f0-96104425f565"
  ]
}

Documentation Index

Fetch the complete documentation index at: https://gcore.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key for authentication. Make sure to include the word apikey, followed by a single space and then your token. Example: apikey 1234$abcdef

Path Parameters

project_id
integer
required

Project ID

Example:

1

region_id
integer
required

Region ID

Example:

1

port_id
string<uuid4>
required

Port ID

Example:

"1f0ca628-a73b-42c0-bdac-7b10d023e097"

Body

application/json
allowed_address_pairs
PatchAllowedAddressPairsSerializer · object[]

A set of zero or more allowed port address pair and/or subnet masks. Replaces the full set of allowed address pairs. Send [] to clear; omit the field to leave existing pairs unchanged.

Maximum array length: 10
Example:
[
{ "ip_address": "192.168.123.20" },
{ "ip_address": "192.168.0.0/17" }
]
ip_assignments
IpAssignmentRequestSerializer · object[]

IP assignments on the port. Replaces the full set; subnets must belong to the port's network and at least one assignment must remain. The IP address is required (server-picked allocation is reserved for port creation).

port_security_enabled
boolean

When true, the network driver enforces port security on this port (anti-spoofing checks and security-group filtering apply). When false, all traffic is allowed and security groups are not applied.

security_group_ids
string<uuid4>[]

List of security group IDs. Replaces the full set of security groups attached to the port. Send [] to detach all groups; omit the field to leave existing groups unchanged.

Maximum array length: 10
Example:
["351b0dd7-ca09-431c-be53-935db3785067"]
tags
UpdateTagsSerializer · object

Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide key-value pairs to add or update tags. Set tag values to null to remove tags. Unspecified tags remain unchanged. Read-only tags are always preserved and cannot be modified.

Examples:

  • Add/update tags: {'tags': {'environment': 'production', 'team': 'backend'}} adds new tags or updates existing ones.
  • Delete tags: {'tags': {'old_tag': null}} removes specific tags.
  • Remove all tags: {'tags': null} removes all user-managed tags (read-only tags are preserved).
  • Partial update: {'tags': {'environment': 'staging'}} only updates specified tags.
  • Mixed operations: {'tags': {'environment': 'production', 'cost_center': 'engineering', 'deprecated_tag': null}} adds/updates 'environment' and 'cost_center' while removing 'deprecated_tag', preserving other existing tags.
  • Replace all: first delete existing tags with null values, then add new ones in the same request.
Example:
{
"my-tag": "my-tag-value",
"my-tag-to-remove": null
}

Response

200 - application/json

OK

tasks
string[]
required

List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:

  • GET /v1/tasks/{task_id} - Check individual task status and details Poll task status until completion (FINISHED/ERROR) before proceeding with dependent operations.
Example:
["d478ae29-dedc-4869-82f0-96104425f565"]