Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Google Cloud SQL - Start Database InstanceDemonstrates how to start a Google Cloud SQL database instance. For more information, see https://cloud.google.com/sql/docs/mysql/start-stop-restart-instance
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; 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.. sbToken.i = CkStringBuilder::ckCreate() If sbToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckLoadFile(sbToken,"qa_data/tokens/google_cloud_sql_access_token.txt","utf-8") http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; 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. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"settings.activationPolicy","ALWAYS") ; Causes the "Authorization: Bearer "$(gcloud auth print-access-token)" header to be added. CkHttp::setCkAuthToken(http, CkStringBuilder::ckGetAsString(sbToken)) CkHttp::ckSetRequestHeader(http,"Content-Type","application/json; charset=utf-8") sbRequestBody.i = CkStringBuilder::ckCreate() If sbRequestBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckEmitSb(json,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".) resp.i = CkHttp::ckPTextSb(http,"PATCH","https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",sbRequestBody,"utf-8","application/json",0,0) If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbRequestBody) ProcedureReturn EndIf sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttpResponse::ckGetBodySb(resp,sbResponseBody) jResp.i = CkJsonObject::ckCreate() If jResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(jResp,sbResponseBody) CkJsonObject::setCkEmitCompact(jResp, 0) Debug "Response Body:" Debug CkJsonObject::ckEmit(jResp) respStatusCode.i = CkHttpResponse::ckStatusCode(resp) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode = 401 Debug "It may be that your access token expired." Debug "Try refreshing the access token by re-fetching it." EndIf If respStatusCode >= 400 Debug "Response Header:" Debug CkHttpResponse::ckHeader(resp) Debug "Failed." CkHttpResponse::ckDispose(resp) CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbRequestBody) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf CkHttpResponse::ckDispose(resp) ; 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 kind.s = CkJsonObject::ckStringOf(jResp,"kind") targetLink.s = CkJsonObject::ckStringOf(jResp,"targetLink") status.s = CkJsonObject::ckStringOf(jResp,"status") user.s = CkJsonObject::ckStringOf(jResp,"user") insertTime.s = CkJsonObject::ckStringOf(jResp,"insertTime") operationType.s = CkJsonObject::ckStringOf(jResp,"operationType") name.s = CkJsonObject::ckStringOf(jResp,"name") targetId.s = CkJsonObject::ckStringOf(jResp,"targetId") selfLink.s = CkJsonObject::ckStringOf(jResp,"selfLink") targetProject.s = CkJsonObject::ckStringOf(jResp,"targetProject") CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbRequestBody) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.