Cloud Databases API

Génération 2

L'API « Cloud Databases » utilise généralement l'API du contrôleur de ressources pour ses opérations. Utilisez cette documentation sur l'API pour exploiter vos services de données.

Authentification

L'accès à l'API s'effectue via une authentification par jeton, en utilisant l'en-tête « Authorization: Bearer <token> ». Le jeton doit avoir été émis par l'IAM. Vous pouvez fournir directement une clé API IAM en tant que jeton ou utiliser cette clé API pour générer un jeton « bearer » IAM.

Pour pouvoir appeler chacune de ces méthodes, vous devez disposer d'un rôle comprenant les actions IAM requises. Chaque méthode répertorie l'action associée. Pour plus d'informations sur les actions IAM et leur mappage à des rôles, reportez-vous à la rubrique Gestion des accès à IBM Cloud®.

Traitement des erreurs

L'API utilise les codes de réponse standard de l' HTTP pour indiquer si une méthode s'est déroulée avec succès. Une réponse « 200 » indique toujours que l'opération a réussi. Une réponse de type « 4xx » correspond à un échec, tandis qu'une réponse de type « 500 » indique généralement une erreur interne du système. Chacune de ces réponses peut être accompagnée d'un corps au format JSON contenant des informations plus détaillées sur l'erreur.

Suivi des événements

Vous pouvez surveiller l'activité de l'API au sein de votre compte à l'aide du IBM Cloud® Activity Tracker service. Chaque fois qu'une méthode API est appelée, un événement est généré, que vous pouvez ensuite suivre et analyser depuis Activity Tracker. Le type d'événement spécifique est indiqué pour chaque méthode.

Identifiants de déploiement et CRN

Les identifiants de déploiement correspondent aux CRN sur la plateforme Cloud Data Services. Lorsque vous utilisez le CRN, n'oubliez pas d'encoder la valeur du CRN selon la méthode URL, car elle peut contenir le caractère « barre oblique » (/) %2F.

Exemple : le CRN suivant

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

se présente comme suit lorsqu'il est encodé selon la norme « URL ».

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

Pagination

Aucun point de terminaison ne renvoie actuellement de données paginées.

Limitation de débit

Aucun point de terminaison ne prend actuellement en charge la limitation de débit.

Méthodes

Afficher la liste de tous les produits déployés

Renvoie une liste de tous les services cloud déployés.

GET /v2/resource_instances

Exemple de demande :

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

Exemple de réponse :

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

Des objets de ressource supplémentaires sont renvoyés dans le tableau resources . Utilisez le jeton « next_url » pour afficher la page suivante des résultats.

Obtenir des informations sur le déploiement

Récupère l'ensemble des données associées à un déploiement. Ces données comprennent l'identifiant, le nom, le type de base de données et la version.

GET /v2/resource_instances/{id}

Exemple de demande :

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

Exemple de réponse :

{
	"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
}

La réponse de l'API vous permet d'obtenir les informations suivantes :

  • last_operation objet - Affiche la dernière tâche que vous avez effectuée.
  • connection objet - Affiche les informations relatives à la connexion du produit.
  • Les informations spécifiques au produit sont affichées sous la fiche produit (par exemple, postgresql).

Comment configurer votre base de données

POST /v2/resource_instances

Exemple de demande :

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"
        }
      }
    }
  }'

Paramètres d'entrée

  • name (Chaîne)- Le nom de l'instance.
  • target (Chaîne)- La région dans laquelle effectuer le déploiement (par exemple, us-south, eu-de).
  • resource_group (Chaîne de caractères)- L'identifiant du groupe de ressources.
  • resource_plan_id (Chaîne)- L'identifiant du forfait (par exemple, databases-for-postgresql-gen2-standard).
  • parameters (Objet)
    • dataservices (Objet)
      • <service> (Objet)- La clé du nom du service (par exemple, postgresql, mysql).
        • storage_gb (Nombre entier)- Taille de stockage en Go.
        • members (Entier)- Nombre de membres.
        • host_flavor (Chaîne)- L'identifiant du type d'hôte (par exemple, b3c.8x32.encrypted).
        • version (Chaîne)- La version de la base de données (par exemple, "18").
      • encryption (Objet, facultatif)- Paramètres de chiffrement du disque.
        • disk (Chaîne)- CRN de la clé « Key Protect » pour le chiffrement du disque.
      • $schema (Objet)- Métadonnées du schéma.
        • version (Chaîne de caractères)- Version du schéma; doit être « "1.0.0" ».

Comment faire évoluer votre base de données

PATCH /v2/resource_instances/{id}

Exemple de demande :

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"
        }
      }
    }
  }'

Paramètres d'entrée

  • parameters (Objet)
    • dataservices (Objet)
      • <service> (Objet)- La clé du nom du service (par exemple, postgresql, mysql).
        • storage_gb (Nombre entier)- Taille de stockage en Go.
        • members (Entier)- Nombre de membres.
        • host_flavor (Chaîne)- L'identifiant du type d'hôte (par exemple, bxf.4x16).