Cloud Databases API

Gen 2

L'API " Cloud Databases " utilizza generalmente l'API del Resource Controller per le operazioni. Utilizza questa documentazione sull'API per interagire con i tuoi servizi dati.

Autenticazione

L'accesso all'API avviene tramite autenticazione con token, utilizzando l'intestazione Authorization: Bearer <token>. Il token deve essere emesso da IAM. È possibile inviare una chiave API IAM direttamente come token oppure utilizzare la chiave API per generare un token bearer IAM.

Per poter richiamare ciascun metodo, è necessario che ti venga assegnato un ruolo che includa le azioni IAM richieste. Ogni metodo elenca l'azione associata. Per ulteriori informazioni sulle azioni IAM e su come queste corrispondono ai ruoli, consultare la guida " Gestione degli accessi" all'indirizzo IBM Cloud®.

Gestione degli errori

L'API utilizza i codici di risposta standard HTTP per indicare se un metodo è stato eseguito con successo. Una risposta di tipo " 200 " indica sempre che l'operazione è andata a buon fine. Una risposta del tipo " 4xx " indica un errore di qualche tipo, mentre una risposta del tipo " 500 " indica solitamente un errore interno del sistema. Ciascuna di queste risposte potrebbe essere accompagnata da un corpo in formato JSON contenente informazioni più dettagliate sull'errore.

Monitoraggio degli eventi

È possibile monitorare l'attività delle API all'interno del proprio account utilizzando il IBM Cloud® Activity Tracker servizio. Ogni volta che viene chiamato un metodo API, viene generato un evento che è possibile monitorare e verificare dall'interno di Activity Tracker. Il tipo specifico di evento è indicato per ogni singolo metodo.

ID di distribuzione e CRN

Gli ID di distribuzione corrispondono ai CRN sulla piattaforma Cloud Data Services. Quando si utilizza il CRN, ricordarsi di codificarlo URL poiché potrebbe contenere il carattere barra (/) %2F.

Esempio: il seguente CRN

crn:v1:bluemix:public:databases-for-redis:us-south:a/274074dce64e9c423ffc238516c755e1:29caf0e7-120f-4da8-9551-3abf57ebcfc7::

diventa il seguente quando viene codificato con il metodo " URL ".

crn:v1:bluemix:public:databases-for-redis:us-south:a%2F274074dce64e9c423ffc238516c755e1:29caf0e7-120f-4da8-9551-3abf57ebcfc7::

Paginazione

Al momento nessun endpoint restituisce dati impaginati.

Limitazione della frequenza

Al momento nessun endpoint implementa la limitazione della velocità.

Metodi

Elenca tutti i prodotti implementati

Restituisce un elenco di tutti i servizi cloud distribuiti.

GET /v2/resource_instances

Richiesta di esempio:

curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances -H "Authorization: Bearer <IAM token>"

Risposta di esempio:

{
  "rows_count": 100,
  "next_url": "/v2/resource_instances?start=<token>",
  "resources": [
    {
      "id": "crn:v1:bluemix:public:databases-for-redis:eu-de:a/40ddc34a953a8c02f10987b59085b60e:07d523b1-6eea-4263-bd03-c17edf355e0b::",
      "guid": "07d523b1-6eea-4263-bd03-c17edf355e0b",
      "url": "/v2/resource_instances/07d523b1-6eea-4263-bd03-c17edf355e0b",
      "created_at": "2026-07-17T06:41:51.267012883Z",
      "updated_at": "2026-07-17T06:42:11.22949657Z",
      "deleted_at": null,
      "created_by": "Id-270000000X",
      "updated_by": "",
      "deleted_by": "",
      "scheduled_reclaim_at": null,
      "restored_at": null,
      "scheduled_reclaim_by": "",
      "restored_by": "",
      "name": "test-redis-gen2",
      "region_id": "eu-de",
      "account_id": "40ddc34a953a8c02f10987b59085b60e",
      "reseller_channel_id": "",
      "resource_plan_id": "databases-for-redis-gen2-standard",
      "resource_group_id": "eb922ba0717f47589ca26d202c5cc915",
      "resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/40ddc34a953a8c02f10987b59085b60e::resource-group:eb922ba0717f47589ca26d202c5cc915",
      "target_crn": "crn:v1:bluemix:public:globalcatalog::::deployment:databases-for-redis-standard-gen2%3Aeu-de",
      "parameters": {
        "dataservices": {
          "redis": {
            "host_flavor": "bxf.4x16",
            "members": 2,
            "storage_gb": 15,
            "version": "8.2"
          }
        }
      },
      "allow_cleanup": false,
      "crn": "crn:v1:bluemix:public:databases-for-redis:eu-de:a/40ddc34a953a8c02f10987b59085b60e:07d523b1-6eea-4263-bd03-c17edf355e0b::",
      "state": "provisioning",
      "type": "service_instance",
      "sub_type": "Public",
      "resource_id": "databases-for-redis",
      "dashboard_url": null,
      "last_operation": {
        "type": "create",
        "state": "in progress",
        "async": true,
        "description": "Provision in progress",
        "cancelable": true,
        "poll": true
      },
      "resource_keys_url": "/v2/resource_instances/07d523b1-6eea-4263-bd03-c17edf355e0b/resource_keys",
      "plan_history": [
        {
          "resource_plan_id": "databases-for-redis-gen2-standard",
          "start_date": "2026-07-17T06:41:51.267012883Z",
          "requestor_id": "Id-270000000X"
        }
      ],
      "migrated": false,
      "controlled_by": "",
      "locked": false,
      "onetime_credentials": false
    }
  ]
}

Gli oggetti risorsa aggiuntivi vengono restituiti nell'array resources . Utilizza il token next_url per recuperare la pagina successiva dei risultati.

Ottieni informazioni sull'implementazione

Recupera tutti i dati associati a una distribuzione. Questi dati includono l'ID, il nome, il tipo di database e la versione.

GET /v2/resource_instances/{id}

Richiesta di esempio:

curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a -H "Authorization: Bearer <IAM token>" \

Risposta di esempio:

{
	"id": "crn:v1:bluemix:public:databases-for-postgresql:us-east:a/23b09aee04da4545b6e32805fa93249d:95004d03-9fec-443b-9f6e-083f2b25e73a::",
	"guid": "95004d03-9fec-443b-9f6e-083f2b25e73a",
	"url": "/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a",
	"created_at": "2026-07-02T14:04:29.613949688Z",
	"updated_at": "2026-07-02T14:15:54.226535327Z",
	"deleted_at": null,
	"created_by": "Id-4700030B2K",
	"updated_by": "",
	"deleted_by": "",
	"scheduled_reclaim_at": null,
	"restored_at": null,
	"scheduled_reclaim_by": "",
	"restored_by": "",
	"name": "Databases for PostgreSQL-3b",
	"region_id": "us-east",
	"account_id": "23b09aee04da4545b6e32805fa93249d",
	"reseller_channel_id": "",
	"resource_plan_id": "databases-for-postgresql-gen2-standard",
	"resource_group_id": "c21a4e8564c14d1aab2a9a8b441904eb",
	"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/23b09aee04da4545b6e32805fa93249d::resource-group:c21a4e8564c14d1aab2a9a8b441904eb",
	"target_crn": "crn:v1:bluemix:public:globalcatalog::::deployment:databases-for-postgresql-standard-gen2%3Aus-east",
	"parameters": {
		"dataservices": {
			"postgresql": {
				"host_flavor": "bx3d.4x20",
				"members": 2,
				"storage_gb": 10,
				"version": "18"
			}
		}
	},
	"allow_cleanup": false,
	"crn": "crn:v1:bluemix:public:databases-for-postgresql:us-east:a/23b09aee04da4545b6e32805fa93249d:95004d03-9fec-443b-9f6e-083f2b25e73a::",
	"state": "active",
	"type": "service_instance",
	"sub_type": "Public",
	"resource_id": "databases-for-postgresql",
	"dashboard_url": null,
	"last_operation": {
		"type": "create",
		"state": "succeeded",
		"async": true,
		"description": "Provision completed successfully",
		"cancelable": true,
		"poll": true
	},
	"resource_keys_url": "/v2/resource_instances/95004d03-9fec-443b-9f6e-083f2b25e73a/resource_keys",
	"plan_history": [
		{
			"resource_plan_id": "databases-for-postgresql-gen2-standard",
			"start_date": "2026-07-02T14:04:29.613949688Z",
			"requestor_id": "Id-4700030B2K"
		}
	],
	"migrated": false,
	"extensions": {
		"dataservices": {
			"$schema": {
				"version": "1.0.0"
			},
			"connection": {
				"cli": {
					"arguments": [
						"host=95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud port=5432 dbname=postgres user=$PGUSER password=$PGPASSWORD sslmode=verify-full"
					],
					"bin": "psql",
					"composed": [
						"PGUSER=$PGUSER PGPASSWORD=$PGPASSWORD PGSSLMODE=verify-full PGSSLROOTCERT=system psql 'host=95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud port=5432 dbname=postgres'"
					],
					"environment": {
						"PGPASSWORD": "$PGPASSWORD",
						"PGSSLMODE": "verify-full",
						"PGSSLROOTCERT": "system",
						"PGUSER": "$PGUSER"
					},
					"type": "cli"
				},
				"postgres": {
					"authentication": {
						"method": "direct",
						"password": "$PGPASSWORD",
						"username": "$PGUSER"
					},
					"composed": [
						"postgres://$PGUSER:$PGPASSWORD@95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud:5432/postgres?sslmode=verify-full"
					],
					"database": "postgres",
					"hosts": [
						{
							"hostname": "95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud",
							"port": 5432
						}
					],
					"path": "/postgres",
					"port": 5432,
					"query_options": {
						"sslmode": "verify-full"
					},
					"scheme": "postgres",
					"type": "uri"
				}
			},
			"postgresql": {
				"configuration": {
					"max_connections": 115
				},
				"cpu_count": 4,
				"host_flavor": "bx3d.4x20",
				"members": 2,
				"memory_gb": 20,
				"storage_gb": 10,
				"version": "18"
			}
		},
		"virtual_private_endpoints": {
			"dns_domain": "95004d03-9fec-443b-9f6e-083f2b25e73a.private.uhp.postgresql.us-east.dataservices.appdomain.cloud",
			"dns_hosts": [
				"",
				"*"
			],
			"endpoints": [
				{
					"ip_address": "10.51.217.34",
					"zone": "us-east-1"
				},
				{
					"ip_address": "10.51.219.57",
					"zone": "us-east-2"
				},
				{
					"ip_address": "10.51.221.12",
					"zone": "us-east-3"
				}
			],
			"origin_type": "vpc",
			"ports": [
				{
					"port_max": 5432,
					"port_min": 5432
				}
			]
		}
	},
	"controlled_by": "",
	"locked": false,
	"onetime_credentials": false
}

Dalla risposta dell'API è possibile ricavare le seguenti informazioni:

  • last_operation oggetto - Mostra l'ultima attività che hai eseguito.
  • connection oggetto - Mostra le informazioni relative alla connessione del prodotto.
  • Le informazioni specifiche sul prodotto sono riportate sotto la scheda del prodotto (ad esempio, postgresql).

Come configurare il database

POST /v2/resource_instances

Richiesta di esempio:

curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H "Authorization: Bearer <IAM token>" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "my-instance",
    "target": "ca-mon",
    "resource_group": "5c49eabc-f5e8-5881-a37e-2d100a33b3df",
    "resource_plan_id": "databases-for-postgresql-gen2-standard",
    "parameters": {
      "dataservices": {
        "postgresql": {
          "storage_gb": 10,
          "members": 2,
          "host_flavor": "b3c.8x32.encrypted",
          "version": "18"
        },
        "encryption": {
          "disk": "crn:v1..."
        },
        "$schema": {
          "version": "1.0.0"
        }
      }
    }
  }'

Parametri di input

  • name (Stringa)- Il nome dell'istanza.
  • target (Stringa)- La regione in cui effettuare il deployment (ad esempio, us-south, eu-de).
  • resource_group (Stringa)- L'ID del gruppo di risorse.
  • resource_plan_id (Stringa)- L'ID del piano (ad esempio, databases-for-postgresql-gen2-standard).
  • parameters (Oggetto)
    • dataservices (Oggetto)
      • <service> (Oggetto)- La chiave del nome del servizio (ad esempio, postgresql, mysql).
        • storage_gb (Numero intero)- Dimensione di archiviazione in GB.
        • members (Numero intero)- Numero di membri.
        • host_flavor (Stringa)- L'ID del tipo di host (ad esempio, b3c.8x32.encrypted).
        • version (Stringa)- La versione del database (ad esempio, "18").
      • encryption (Oggetto, facoltativo)- Impostazioni di crittografia del disco.
        • disk (Stringa)- CRN della chiave " Key Protect " per la crittografia del disco.
      • $schema (Oggetto)- Metadati dello schema.
        • version (Stringa)- Versione dello schema; deve essere "1.0.0".

Come scalare il proprio database

PATCH /v2/resource_instances/{id}

Richiesta di esempio:

curl -X PATCH https://resource-controller.cloud.ibm.com/v2/resource_instances/ed9d2c9b-444b-421d-bbc0-503ca8dd3036 \
  -H "Authorization: Bearer <IAM token>" \
  -H 'Content-Type: application/json' \
  -d '{
    "parameters": {
      "dataservices": {
        "postgresql": {
          "storage_gb": 12,
          "members": 2,
          "host_flavor": "bxf.4x16"
        }
      }
    }
  }'

Parametri di input

  • parameters (Oggetto)
    • dataservices (Oggetto)
      • <service> (Oggetto)- La chiave del nome del servizio (ad esempio, postgresql, mysql).
        • storage_gb (Numero intero)- Dimensione di archiviazione in GB.
        • members (Numero intero)- Numero di membri.
        • host_flavor (Stringa)- L'ID del tipo di host (ad esempio, bxf.4x16).