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": "Some description",
  "name": "some_name",
  "rules": [
    {
      "description": "Some description",
      "ethertype": "IPv4",
      "port_range_max": 80,
      "port_range_min": 80,
      "protocol": "tcp",
      "remote_group_id": "00000000-0000-4000-8000-000000000000",
      "remote_ip_prefix": "10.0.0.0/8"
    }
  ],
  "tags": {
    "my-tag": "my-tag-value",
    "my-tag-to-remove": null
  }
}
'
{
  "tasks": [
    "d478ae29-dedc-4869-82f0-96104425f565"
  ]
}

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

Pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
Example:

"some_name"

rules
UpdateSecurityGroupRuleSerializerV2 · object[]

Security group rules

Maximum array length: 250
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"]