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 - Get Instance InformationDemonstrates how to get information about your Cloud SQL instances, including instance summary information, usage data, operation logs, and database logs. For more information, see https://cloud.google.com/sql/docs/mysql/instance-info
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 GET \ ; -H "Authorization: Bearer access-token" \ ; https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id ; Use the following online tool to generate HTTP code from a CURL command ; Convert a cURL Command to HTTP Source Code ; Causes the "Authorization: Bearer "$(gcloud auth print-access-token)" header to be added. CkHttp::setCkAuthToken(http, CkStringBuilder::ckGetAsString(sbToken)) ; 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".) sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckQuickGetSb(http,"https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",sbResponseBody) If success = 0 Debug CkHttp::ckLastErrorText(http) CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) ProcedureReturn EndIf 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 = CkHttp::ckLastStatus(http) 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 CkHttp::ckLastHeader(http) Debug "Failed." CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; { ; "kind": "sql#instance", ; "state": "RUNNABLE", ; "databaseVersion": "MYSQL_5_7", ; "settings": { ; "authorizedGaeApplications": [ ; ], ; "tier": "db-f1-micro", ; "kind": "sql#settings", ; "pricingPlan": "PER_USE", ; "replicationType": "SYNCHRONOUS", ; "activationPolicy": "ALWAYS", ; "ipConfiguration": { ; "authorizedNetworks": [ ; ], ; "ipv4Enabled": true ; }, ; "locationPreference": { ; "zone": "asia-east1-a", ; "kind": "sql#locationPreference" ; }, ; "dataDiskType": "PD_SSD", ; "backupConfiguration": { ; "startTime": "08:00", ; "kind": "sql#backupConfiguration", ; "enabled": true, ; "pointInTimeEnabled": true ; }, ; "settingsVersion": "13", ; "storageAutoResizeLimit": "0", ; "storageAutoResize": true, ; "dataDiskSizeGb": "10" ; }, ; "etag": "etag-id", ; "ipAddresses": [ ; { ; "type": "PRIMARY", ; "ipAddress": "10.0.0.1" ; } ; ], ; "serverCaCert": { ; "kind": "sql#sslCert", ; "certSerialNumber": "0", ; "cert": "certificate-id", ; "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id", ; "sha1Fingerprint": "sha-id", ; "instance": "instance-id", ; "createTime": "2019-06-28T22:46:35.052Z", ; "expirationTime": "2029-06-25T22:47:35.052Z" ; }, ; "instanceType": "CLOUD_SQL_INSTANCE", ; "project": "project-id", ; "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com", ; "backendType": "SECOND_GEN", ; "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", ; "connectionName": "project-id:region:instance-id", ; "name": "instance-id", ; "region": "asia-east1", ; "gceZone": "asia-east1-a" ; } ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON v_type.s ipAddress.s kind.s = CkJsonObject::ckStringOf(jResp,"kind") state.s = CkJsonObject::ckStringOf(jResp,"state") databaseVersion.s = CkJsonObject::ckStringOf(jResp,"databaseVersion") settingsTier.s = CkJsonObject::ckStringOf(jResp,"settings.tier") settingsKind.s = CkJsonObject::ckStringOf(jResp,"settings.kind") settingsPricingPlan.s = CkJsonObject::ckStringOf(jResp,"settings.pricingPlan") settingsReplicationType.s = CkJsonObject::ckStringOf(jResp,"settings.replicationType") settingsActivationPolicy.s = CkJsonObject::ckStringOf(jResp,"settings.activationPolicy") settingsIpConfigurationIpv4Enabled.i = CkJsonObject::ckBoolOf(jResp,"settings.ipConfiguration.ipv4Enabled") settingsLocationPreferenceZone.s = CkJsonObject::ckStringOf(jResp,"settings.locationPreference.zone") settingsLocationPreferenceKind.s = CkJsonObject::ckStringOf(jResp,"settings.locationPreference.kind") settingsDataDiskType.s = CkJsonObject::ckStringOf(jResp,"settings.dataDiskType") settingsBackupConfigurationStartTime.s = CkJsonObject::ckStringOf(jResp,"settings.backupConfiguration.startTime") settingsBackupConfigurationKind.s = CkJsonObject::ckStringOf(jResp,"settings.backupConfiguration.kind") settingsBackupConfigurationEnabled.i = CkJsonObject::ckBoolOf(jResp,"settings.backupConfiguration.enabled") settingsBackupConfigurationPointInTimeEnabled.i = CkJsonObject::ckBoolOf(jResp,"settings.backupConfiguration.pointInTimeEnabled") settingsSettingsVersion.s = CkJsonObject::ckStringOf(jResp,"settings.settingsVersion") settingsStorageAutoResizeLimit.s = CkJsonObject::ckStringOf(jResp,"settings.storageAutoResizeLimit") settingsStorageAutoResize.i = CkJsonObject::ckBoolOf(jResp,"settings.storageAutoResize") settingsDataDiskSizeGb.s = CkJsonObject::ckStringOf(jResp,"settings.dataDiskSizeGb") etag.s = CkJsonObject::ckStringOf(jResp,"etag") serverCaCertKind.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.kind") serverCaCertCertSerialNumber.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.certSerialNumber") serverCaCertCert.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.cert") serverCaCertCommonName.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.commonName") serverCaCertSha1Fingerprint.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.sha1Fingerprint") serverCaCertInstance.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.instance") serverCaCertCreateTime.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.createTime") serverCaCertExpirationTime.s = CkJsonObject::ckStringOf(jResp,"serverCaCert.expirationTime") instanceType.s = CkJsonObject::ckStringOf(jResp,"instanceType") project.s = CkJsonObject::ckStringOf(jResp,"project") serviceAccountEmailAddress.s = CkJsonObject::ckStringOf(jResp,"serviceAccountEmailAddress") backendType.s = CkJsonObject::ckStringOf(jResp,"backendType") selfLink.s = CkJsonObject::ckStringOf(jResp,"selfLink") connectionName.s = CkJsonObject::ckStringOf(jResp,"connectionName") name.s = CkJsonObject::ckStringOf(jResp,"name") region.s = CkJsonObject::ckStringOf(jResp,"region") gceZone.s = CkJsonObject::ckStringOf(jResp,"gceZone") i.i = 0 count_i.i = CkJsonObject::ckSizeOfArray(jResp,"settings.authorizedGaeApplications") While i < count_i CkJsonObject::setCkI(jResp, i) i = i + 1 Wend i = 0 count_i = CkJsonObject::ckSizeOfArray(jResp,"settings.ipConfiguration.authorizedNetworks") While i < count_i CkJsonObject::setCkI(jResp, i) i = i + 1 Wend i = 0 count_i = CkJsonObject::ckSizeOfArray(jResp,"ipAddresses") While i < count_i CkJsonObject::setCkI(jResp, i) v_type = CkJsonObject::ckStringOf(jResp,"ipAddresses[i].type") ipAddress = CkJsonObject::ckStringOf(jResp,"ipAddresses[i].ipAddress") i = i + 1 Wend CkStringBuilder::ckDispose(sbToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.