Skip to main content
PATCH
/
cloud
/
v2
/
security_groups
/
{project_id}
/
{region_id}
/
{group_id}
Update security group
curl --request PATCH \
  --url https://api.gcore.com/cloud/v2/security_groups/{project_id}/{region_id}/{group_id} \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "description": "<string>",
  "name": "<string>",
  "rules": [
    {
      "description": "<string>",
      "direction": "egress",
      "ethertype": "IPv4",
      "port_range_max": 32767,
      "port_range_min": 32767,
      "protocol": "ah",
      "remote_group_id": "<string>",
      "remote_ip_prefix": "<string>"
    }
  ],
  "tags": {
    "my-tag": "my-tag-value",
    "my-tag-to-remove": null
  }
}
'
{
  "tasks": [
    "<string>"
  ]
}

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

group_id
string<uuid4>
required

Security group ID

Example:

"00000000-0000-4000-8000-000000000000"

Body

application/json
description
string

Security group description

Example:

"Some description"

name
string

Name

Example:

"some_name"

rules
UpdateSecurityGroupRuleSerializerV2 · object[]

Security group rules

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"]