Lua
Lua
Google Cloud SQL - Start Database Instance
See more Google Cloud SQL Examples
Demonstrates how to start a Google Cloud SQL database instance.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- 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..
local sbToken = chilkat.StringBuilder.new()
sbToken:load_file("qa_data/tokens/google_cloud_sql_access_token.txt", "utf-8")
local http = chilkat.Http.new()
-- 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.
local json = chilkat.JsonObject.new()
json:update_string("settings.activationPolicy", "ALWAYS")
-- Causes the "Authorization: Bearer "$(gcloud auth print-access-token)" header to be added.
http.auth_token = sbToken:get_as_string()
http:set_request_header("Content-Type", "application/json; charset=utf-8")
local sbRequestBody = chilkat.StringBuilder.new()
json:emit_sb(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".)
local resp = chilkat.HttpResponse.new()
local success = http:http_sb("PATCH", "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", sbRequestBody, "utf-8", "application/json", resp)
if not success then
print(http.last_error_text)
return
end
local sbResponseBody = chilkat.StringBuilder.new()
resp:get_body_sb(sbResponseBody)
local jResp = chilkat.JsonObject.new()
jResp:load_sb(sbResponseBody)
jResp.emit_compact = false
print("Response Body:")
print(jResp:emit())
local respStatusCode = resp.status_code
print("Response Status Code = " .. respStatusCode)
if respStatusCode == 401 then
print("It may be that your access token expired.")
print("Try refreshing the access token by re-fetching it.")
end
if respStatusCode >= 400 then
print("Response Header:")
print(resp.header)
print("Failed.")
return
end
-- 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
local kind = jResp:string_of("kind")
local targetLink = jResp:string_of("targetLink")
local status = jResp:string_of("status")
local user = jResp:string_of("user")
local insertTime = jResp:string_of("insertTime")
local operationType = jResp:string_of("operationType")
local name = jResp:string_of("name")
local targetId = jResp:string_of("targetId")
local selfLink = jResp:string_of("selfLink")
local targetProject = jResp:string_of("targetProject")