curl --request POST \
--url https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "097bbbf4-d1eb-4512-9950-684445279808",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"serviceAccountKey": "{\"type\": \"service_account\", \"project_id\": \"...\", ...}",
"description": "Production container registry"
}
'import requests
url = "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials"
payload = {
"projectId": "097bbbf4-d1eb-4512-9950-684445279808",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"serviceAccountKey": "{\"type\": \"service_account\", \"project_id\": \"...\", ...}",
"description": "Production container registry"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '097bbbf4-d1eb-4512-9950-684445279808',
gcpProjectId: 'my-gcp-project-123',
registryHostname: 'gcr.io',
serviceAccountKey: '{"type": "service_account", "project_id": "...", ...}',
description: 'Production container registry'
})
};
fetch('https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '097bbbf4-d1eb-4512-9950-684445279808',
'gcpProjectId' => 'my-gcp-project-123',
'registryHostname' => 'gcr.io',
'serviceAccountKey' => '{"type": "service_account", "project_id": "...", ...}',
'description' => 'Production container registry'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials"
payload := strings.NewReader("{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"createdAt": "2025-01-01T00:00:00Z",
"description": "Production container registry"
}Store GCR Container Registry credentials
Stores GCP service account key credentials for Google Container Registry (GCR) or Artifact Registry at the organization level. These credentials will be used to authenticate and pull container images for vulnerability scanning.
curl --request POST \
--url https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "097bbbf4-d1eb-4512-9950-684445279808",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"serviceAccountKey": "{\"type\": \"service_account\", \"project_id\": \"...\", ...}",
"description": "Production container registry"
}
'import requests
url = "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials"
payload = {
"projectId": "097bbbf4-d1eb-4512-9950-684445279808",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"serviceAccountKey": "{\"type\": \"service_account\", \"project_id\": \"...\", ...}",
"description": "Production container registry"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '097bbbf4-d1eb-4512-9950-684445279808',
gcpProjectId: 'my-gcp-project-123',
registryHostname: 'gcr.io',
serviceAccountKey: '{"type": "service_account", "project_id": "...", ...}',
description: 'Production container registry'
})
};
fetch('https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '097bbbf4-d1eb-4512-9950-684445279808',
'gcpProjectId' => 'my-gcp-project-123',
'registryHostname' => 'gcr.io',
'serviceAccountKey' => '{"type": "service_account", "project_id": "...", ...}',
'description' => 'Production container registry'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials"
payload := strings.NewReader("{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-eu.cybedefend.com/integrations/gcr/container-registry/organization/{organizationId}/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"097bbbf4-d1eb-4512-9950-684445279808\",\n \"gcpProjectId\": \"my-gcp-project-123\",\n \"registryHostname\": \"gcr.io\",\n \"serviceAccountKey\": \"{\\\"type\\\": \\\"service_account\\\", \\\"project_id\\\": \\\"...\\\", ...}\",\n \"description\": \"Production container registry\"\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gcpProjectId": "my-gcp-project-123",
"registryHostname": "gcr.io",
"createdAt": "2025-01-01T00:00:00Z",
"description": "Production container registry"
}Path Parameters
CybeDefend organization ID
"550e8400-e29b-41d4-a716-446655440000"
Body
GCP service account key credentials for GCR/Artifact Registry access
CybeDefend project ID to associate this credential with
"097bbbf4-d1eb-4512-9950-684445279808"
GCP project ID
"my-gcp-project-123"
Registry hostname (gcr.io, us.gcr.io, eu.gcr.io, asia.gcr.io, or Artifact Registry hostname)
"gcr.io"
GCP Service Account JSON key (entire JSON content)
"{\"type\": \"service_account\", \"project_id\": \"...\", ...}"
Description for this credential
"Production container registry"
Response
Credentials stored successfully
Credential ID
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
GCP project ID
"my-gcp-project-123"
Registry hostname
"gcr.io"
Creation date
"2025-01-01T00:00:00Z"
Description
"Production container registry"