Sample code for 30+ languages & platforms
Dart

Google Cloud SQL - Start Database Instance

See more Google Cloud SQL Examples

Demonstrates how to start a Google Cloud SQL database instance.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // In this example, Get Google Cloud SQL OAuth2 Access Token, 
  // the service account access token was saved to a text file.  This example fetches the access token from the file..
  final sbToken = CkStringBuilder();
  sbToken.loadFile('qa_data/tokens/google_cloud_sql_access_token.txt', 'utf-8');

  final http = CkHttp();

  // Implements the following CURL command:

  // curl -X PATCH \
  // -H "Authorization: Bearer "$(gcloud auth print-access-token) \
  // -H "Content-Type: application/json; charset=utf-8" \
  // -d '{
  //   "settings": {
  //     "activationPolicy": "ALWAYS" 
  //   }
  // }' \
  // https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

  // Use this online tool to generate code from sample JSON:
  // Generate Code to Create JSON

  // The following JSON is sent in the request body.

  // {
  //   "settings": {
  //     "activationPolicy": "ALWAYS"
  //   }
  // }

  // Use "ALWAYS" to start an instance.  Use "NEVER" to stop an instance.
  final json = CkJsonObject();
  json.updateString('settings.activationPolicy', 'ALWAYS');

  // Causes the "Authorization: Bearer "$(gcloud auth print-access-token)" header to be added.
  http.authToken = sbToken.getAsString();

  http.setRequestHeader('Content-Type', 'application/json; charset=utf-8');

  final sbRequestBody = CkStringBuilder();
  json.emitSb(sbRequestBody);

  // Replace "project-id" with your actual Google project ID.
  // Replace "instance-id" with your database instance ID, which is the name of your database.  (For example, when I created my test database I named it "chilkat", and therefore my instance-id is "chilkat".)
  final resp = CkHttpResponse();
  try {
    http.httpSb('PATCH', 'https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id', sbRequestBody, 'utf-8', 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final sbResponseBody = CkStringBuilder();
  resp.getBodySb(sbResponseBody);
  final jResp = CkJsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  print('Response Body:');
  print(jResp.emit());

  final respStatusCode = resp.statusCode;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode == 401) {
    print('It may be that your access token expired.');
    print('Try refreshing the access token by re-fetching it.');
  }

  if (respStatusCode >= 400) {
    print('Response Header:');
    print(resp.header);
    print('Failed.');
    return;
  }

  // Sample JSON response:
  // (Sample code for parsing the JSON response is shown below)

  // {
  //   "kind": "sql#operation",
  //   "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  //   "status": "PENDING",
  //   "user": "user@example.com",
  //   "insertTime": "2020-01-20T21:30:35.667Z",
  //   "operationType": "UPDATE",
  //   "name": "operation-id",
  //   "targetId": "instance-id",
  //   "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  //   "targetProject": "project-id"
  // }

  // Sample code for parsing the JSON response...
  // Use the following online tool to generate parsing code from sample JSON:
  // Generate Parsing Code from JSON

  final kind = jResp.stringOf('kind');
  final targetLink = jResp.stringOf('targetLink');
  final status = jResp.stringOf('status');
  final user = jResp.stringOf('user');
  final insertTime = jResp.stringOf('insertTime');
  final operationType = jResp.stringOf('operationType');
  final name = jResp.stringOf('name');
  final targetId = jResp.stringOf('targetId');
  final selfLink = jResp.stringOf('selfLink');
  final targetProject = jResp.stringOf('targetProject');
}