Google Cloud Client Libraries for Go.

Overview

Google Cloud Client Libraries for Go

Go Reference

Go packages for Google Cloud Platform services.

import "cloud.google.com/go"

To install the packages on your system, do not clone the repo. Instead:

  1. Change to your project directory:

    cd /my/cloud/project
    
  2. Get the package you want to use. Some products have their own module, so it's best to go get the package(s) you want to use:

    $ go get cloud.google.com/go/firestore # Replace with the package you want to use.
    

NOTE: Some of these packages are under development, and may occasionally make backwards-incompatible changes.

Supported APIs

Google API Status Package
Asset stable cloud.google.com/go/asset/apiv1
Automl stable cloud.google.com/go/automl/apiv1
BigQuery stable cloud.google.com/go/bigquery
Bigtable stable cloud.google.com/go/bigtable
Cloudbuild stable cloud.google.com/go/cloudbuild/apiv1
Cloudtasks stable cloud.google.com/go/cloudtasks/apiv2
Container stable cloud.google.com/go/container/apiv1
ContainerAnalysis beta cloud.google.com/go/containeranalysis/apiv1
Dataproc stable cloud.google.com/go/dataproc/apiv1
Datastore stable cloud.google.com/go/datastore
Debugger stable cloud.google.com/go/debugger/apiv2
Dialogflow stable cloud.google.com/go/dialogflow/apiv2
Data Loss Prevention stable cloud.google.com/go/dlp/apiv2
ErrorReporting alpha cloud.google.com/go/errorreporting
Firestore stable cloud.google.com/go/firestore
IAM stable cloud.google.com/go/iam
IoT stable cloud.google.com/go/iot/apiv1
IRM alpha cloud.google.com/go/irm/apiv1alpha2
KMS stable cloud.google.com/go/kms/apiv1
Natural Language stable cloud.google.com/go/language/apiv1
Logging stable cloud.google.com/go/logging
Memorystore alpha cloud.google.com/go/redis/apiv1
Monitoring stable cloud.google.com/go/monitoring/apiv3
OS Login stable cloud.google.com/go/oslogin/apiv1
Pub/Sub stable cloud.google.com/go/pubsub
Phishing Protection alpha cloud.google.com/go/phishingprotection/apiv1beta1
reCAPTCHA Enterprise alpha cloud.google.com/go/recaptchaenterprise/apiv1beta1
Recommender beta cloud.google.com/go/recommender/apiv1beta1
Scheduler stable cloud.google.com/go/scheduler/apiv1
Securitycenter stable cloud.google.com/go/securitycenter/apiv1
Spanner stable cloud.google.com/go/spanner
Speech stable cloud.google.com/go/speech/apiv1
Storage stable cloud.google.com/go/storage
Talent alpha cloud.google.com/go/talent/apiv4beta1
Text To Speech stable cloud.google.com/go/texttospeech/apiv1
Trace stable cloud.google.com/go/trace/apiv2
Translate stable cloud.google.com/go/translate
Video Intelligence beta cloud.google.com/go/videointelligence/apiv1beta2
Vision stable cloud.google.com/go/vision/apiv1
Webrisk alpha cloud.google.com/go/webrisk/apiv1beta1

Alpha status: the API is still being actively developed. As a result, it might change in backward-incompatible ways and is not recommended for production use.

Beta status: the API is largely complete, but still has outstanding features and bugs to be addressed. There may be minor backwards-incompatible changes where necessary.

Stable status: the API is mature and ready for production use. We will continue addressing bugs and feature requests.

Documentation and examples are available at pkg.go.dev/cloud.google.com/go

Go Versions Supported

We currently support Go versions 1.11 and newer.

Authorization

By default, each API will use Google Application Default Credentials for authorization credentials used in calling the API endpoints. This will allow your application to run in many environments without requiring explicit configuration.

client, err := storage.NewClient(ctx)

To authorize using a JSON key file, pass option.WithCredentialsFile to the NewClient function of the desired package. For example:

client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))

You can exert more control over authorization by using the golang.org/x/oauth2 package to create an oauth2.TokenSource. Then pass option.WithTokenSource to the NewClient function: snip:# (auth-ts)

tokenSource := ...
client, err := storage.NewClient(ctx, option.WithTokenSource(tokenSource))

Contributing

Contributions are welcome. Please, see the CONTRIBUTING document for details.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See Contributor Code of Conduct for more information.

Links

Issues
  • fix(all): Update hand-written clients to not use WithEndpoint override

    fix(all): Update hand-written clients to not use WithEndpoint override

    -logging clients delegate to the gapic generated client with the correct defaults, so no need to override. -bigtable and spanner clients needs to be manually updated to use DefaultEndpoint and DefaultMTLSEndpoint

    cla: yes 
    opened by andyrzhao 2500
  • pubsub: Large number of duplicate messages suddenly

    pubsub: Large number of duplicate messages suddenly

    I've been noticing an influx of duplicate messages. Previously I don't think I had ever came across one, suddenly started seeing large volumes of dupes. For example out of 50 messages that were all ACKd just recently, I saw 48 duplicates. It sounds similar to this issue: https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2465

    When I look in Google Cloud Console at the API requests, I'm seeing large numbers of 499 error codes. In the last 4 days I have 1,312 200 error codes, but 7,580 499 error codes.

    MaxOutstandingMessages = 10 MaxExtension = 10 minutes

    Versions:

    • cloud.google.com/go: aeeacb092ec71c83668e4828857289d89c34b610
    • github.com/googleapis/gax-go: 317e0006254c44a0ac427cc52a0e083ff0b9622f
    • google.golang.org/genproto: 1e559d0a00eef8a9a43151db4665280bd8dd5886
    • google.golang.org/grpc: f92cdcd7dcdc69e81b2d7b338479a19a8723cfa3
    type: bug api: pubsub priority: p1 :rotating_light: 
    opened by cristiangraz 72
  • pupsub: Receive sometimes deadlocks if error codes.Unavailable

    pupsub: Receive sometimes deadlocks if error codes.Unavailable

    Client

    PubSub

    Describe Your Environment

    Alpine:3.7 on GCE

    Expected Behavior

    Receive retries and eventually returns an error

    Actual Behavior

    Receive hangs indefinitely, never returning an error or continuing to process messages. Because of this the application that is using pubsub client with Receive is completely locked and I must restart the docker container.

    Further Description

    I have been noticing that messages stop processing periodically using pubsub client in my application. I am handiling Receive errors properly, however an error is never returned. I then added logging into my app with the Receive callback. As soon as I notice messages are no longer processing, nothing is logged within the callback and Receive is completely locked up. I am not sure how to handle this.

    I added logging within the pupsub isRetryable(err error) bool function. and each time I experience this it seems there is a corresponding Unavailable log:

    Unavailable The service was unable to fulfill your request. Please try again. [code=8a75]

    Oddly, it seems that isRetryable should return true and retry in this case, so I am unsure where the lock is happening. An immediate restart of the Docker container resolves the issue, but only for a while.

    This seems similar to issue: https://github.com/GoogleCloudPlatform/google-cloud-go/issues/1156

    However, in that issue the reported error is the cause of a Context error, which I am not seeing and therefore I think they may be separate bugs.

    Example Code

    Here is an example of a simple subscriber package I created that uses pubsub client:

    https://gist.github.com/erickertz/2090853580dcead48682886b2cb7f0d4

    type: bug api: pubsub priority: p1 
    opened by erickertz 52
  • httpreplay: TestIntegration_RecordAndReplay failed

    httpreplay: TestIntegration_RecordAndReplay failed

    Note: #1952 was also for this test, but it was closed more than 10 days ago. So, I didn't mark it flaky.


    commit: 0113f76edd4e6bd8604d86230cb19b30d6ec512a buildURL: Build Status, Sponge status: failed

    Test output
        httpreplay_test.go:248: recording: compressed, entire file, server unzips: storage: object doesn't exist
        httpreplay_test.go:248: recording: compressed, entire file, read compressed: storage: object doesn't exist
        httpreplay_test.go:248: recording: compressed, partial, read compressed: storage: object doesn't exist
        httpreplay_test.go:248: recording: compressed, HEAD: storage: object doesn't exist
        httpreplay_test.go:248: replaying: compressed, entire file, server unzips: storage: object doesn't exist
        httpreplay_test.go:248: replaying: compressed, entire file, read compressed: storage: object doesn't exist
        httpreplay_test.go:248: replaying: compressed, partial, read compressed: storage: object doesn't exist
        httpreplay_test.go:248: replaying: compressed, HEAD: storage: object doesn't exist
    type: bug priority: p2 
    opened by flaky-bot[bot] 48
  • pubsub: inconsistently receiving less messages after v0.24.0

    pubsub: inconsistently receiving less messages after v0.24.0

    User @fastest963 reports that using v0.24.0 works as expected, but bumping to HEAD causes what appears to be rate limiting to happen.

    See: https://github.com/GoogleCloudPlatform/google-cloud-go/issues/1163#issuecomment-429323268

    Continuing the conversation from that thread here, since the original issue there seems quite different.

    api: pubsub status: investigating 
    opened by jadekler 47
  • chore: release main

    chore: release main

    :robot: I have created a release beep boop

    accessapproval: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • accessapproval: set versionClient to module version (55f0d92)
    accesscontextmanager: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • accesscontextmanager: set versionClient to module version (55f0d92)
    aiplatform: 1.5.0

    1.5.0 (2022-02-23)

    Features

    • aiplatform: set versionClient to module version (55f0d92)
    analytics: 0.5.0

    0.5.0 (2022-02-23)

    Features

    • analytics: set versionClient to module version (55f0d92)
    apigateway: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • apigateway: set versionClient to module version (55f0d92)
    apigeeconnect: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • apigeeconnect: set versionClient to module version (55f0d92)
    appengine: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • appengine: set versionClient to module version (55f0d92)
    area120: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • area120: set versionClient to module version (55f0d92)
    artifactregistry: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • artifactregistry: set versionClient to module version (55f0d92)
    asset: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • asset: set versionClient to module version (55f0d92)
    assuredworkloads: 0.5.0

    0.5.0 (2022-02-23)

    Features

    • assuredworkloads: set versionClient to module version (55f0d92)
    automl: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • automl: set versionClient to module version (55f0d92)
    billing: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • billing: set versionClient to module version (55f0d92)
    binaryauthorization: 0.4.0

    0.4.0 (2022-02-23)

    Features

    • binaryauthorization: set versionClient to module version (55f0d92)
    channel: 1.5.0

    1.5.0 (2022-02-23)

    Features

    • channel: set versionClient to module version (55f0d92)
    cloudbuild: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • cloudbuild: set versionClient to module version (55f0d92)
    clouddms: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • clouddms: set versionClient to module version (55f0d92)
    cloudtasks: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • cloudtasks: set versionClient to module version (55f0d92)
    compute: 1.5.0

    1.5.0 (2022-02-23)

    Features

    • compute: set versionClient to module version (55f0d92)
    contactcenterinsights: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • contactcenterinsights: set versionClient to module version (55f0d92)
    container: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • container: set versionClient to module version (55f0d92)
    containeranalysis: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • containeranalysis: set versionClient to module version (55f0d92)
    datacatalog: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • datacatalog: set versionClient to module version (55f0d92)
    dataflow: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • dataflow: set versionClient to module version (55f0d92)
    datafusion: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • datafusion: set versionClient to module version (55f0d92)
    datalabeling: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • datalabeling: set versionClient to module version (55f0d92)
    dataplex: 0.4.0

    0.4.0 (2022-02-23)

    Features

    • dataplex: set versionClient to module version (55f0d92)
    dataproc: 1.5.0

    1.5.0 (2022-02-23)

    Features

    • dataproc: set versionClient to module version (55f0d92)
    dataqna: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • dataqna: set versionClient to module version (55f0d92)
    datastream: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • datastream: set versionClient to module version (55f0d92)
    deploy: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • deploy: set versionClient to module version (55f0d92)
    dialogflow: 1.6.0

    1.6.0 (2022-02-23)

    Features

    • dialogflow: set versionClient to module version (55f0d92)
    dlp: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • dlp: set versionClient to module version (55f0d92)
    documentai: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • documentai: set versionClient to module version (55f0d92)
    domains: 0.4.0

    0.4.0 (2022-02-23)

    Features

    • domains: set versionClient to module version (55f0d92)
    essentialcontacts: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • essentialcontacts: set versionClient to module version (55f0d92)
    eventarc: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • eventarc: set versionClient to module version (55f0d92)
    filestore: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • filestore: set versionClient to module version (55f0d92)
    functions: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • functions: set versionClient to module version (55f0d92)
    gaming: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • gaming: set versionClient to module version (55f0d92)
    gkeconnect: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • gkeconnect: set versionClient to module version (55f0d92)
    gkehub: 0.4.0

    0.4.0 (2022-02-23)

    Features

    • gkehub: set versionClient to module version (55f0d92)
    gsuiteaddons: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • gsuiteaddons: set versionClient to module version (55f0d92)
    iam: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • iam: set versionClient to module version (55f0d92)
    iap: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • iap: set versionClient to module version (55f0d92)
    ids: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • ids: set versionClient to module version (55f0d92)
    iot: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • iot: set versionClient to module version (55f0d92)
    kms: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • kms: set versionClient to module version (55f0d92)
    language: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • language: set versionClient to module version (55f0d92)
    lifesciences: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • lifesciences: set versionClient to module version (55f0d92)
    managedidentities: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • managedidentities: set versionClient to module version (55f0d92)
    mediatranslation: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • mediatranslation: set versionClient to module version (55f0d92)
    memcache: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • memcache: set versionClient to module version (55f0d92)
    metastore: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • metastore: set versionClient to module version (55f0d92)
    monitoring: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • monitoring: set versionClient to module version (55f0d92)
    networkconnectivity: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • networkconnectivity: set versionClient to module version (55f0d92)
    networkmanagement: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • networkmanagement: set versionClient to module version (55f0d92)
    networksecurity: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • networksecurity: set versionClient to module version (55f0d92)
    notebooks: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • notebooks: set versionClient to module version (55f0d92)
    orchestration: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • orchestration: set versionClient to module version (55f0d92)
    orgpolicy: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • orgpolicy: set versionClient to module version (55f0d92)
    osconfig: 1.5.0

    1.5.0 (2022-02-23)

    Features

    • osconfig: set versionClient to module version (55f0d92)
    oslogin: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • oslogin: set versionClient to module version (55f0d92)
    phishingprotection: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • phishingprotection: set versionClient to module version (55f0d92)
    policytroubleshooter: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • policytroubleshooter: set versionClient to module version (55f0d92)
    privatecatalog: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • privatecatalog: set versionClient to module version (55f0d92)
    recaptchaenterprise: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • recaptchaenterprise: set versionClient to module version (55f0d92)
    recommender: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • recommender: set versionClient to module version (55f0d92)
    redis: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • redis: set versionClient to module version (55f0d92)
    resourcemanager: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • resourcemanager: set versionClient to module version (55f0d92)
    resourcesettings: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • resourcesettings: set versionClient to module version (55f0d92)
    retail: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • retail: set versionClient to module version (55f0d92)
    scheduler: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • scheduler: set versionClient to module version (55f0d92)
    secretmanager: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • secretmanager: set versionClient to module version (55f0d92)
    security: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • security: set versionClient to module version (55f0d92)
    securitycenter: 1.4.0

    1.4.0 (2022-02-23)

    Features

    • securitycenter: set versionClient to module version (55f0d92)
    servicecontrol: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • servicecontrol: set versionClient to module version (55f0d92)
    servicedirectory: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • servicedirectory: set versionClient to module version (55f0d92)
    servicemanagement: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • servicemanagement: set versionClient to module version (55f0d92)
    serviceusage: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • serviceusage: set versionClient to module version (55f0d92)
    shell: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • shell: set versionClient to module version (55f0d92)
    speech: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • speech: set versionClient to module version (55f0d92)
    storagetransfer: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • storagetransfer: set versionClient to module version (55f0d92)
    talent: 0.5.0

    0.5.0 (2022-02-23)

    Features

    • talent: set versionClient to module version (55f0d92)
    texttospeech: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • texttospeech: set versionClient to module version (55f0d92)
    tpu: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • tpu: set versionClient to module version (55f0d92)
    trace: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • trace: set versionClient to module version (55f0d92)
    translate: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • translate: set versionClient to module version (55f0d92)
    video: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • video: set versionClient to module version (55f0d92)
    videointelligence: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • videointelligence: set versionClient to module version (55f0d92)
    vision: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • vision: set versionClient to module version (55f0d92)
    vmmigration: 0.3.0

    0.3.0 (2022-02-23)

    Features

    • vmmigration: set versionClient to module version (55f0d92)
    vpcaccess: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • vpcaccess: set versionClient to module version (55f0d92)
    webrisk: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • webrisk: set versionClient to module version (55f0d92)
    websecurityscanner: 1.2.0

    1.2.0 (2022-02-23)

    Features

    • websecurityscanner: set versionClient to module version (55f0d92)
    workflows: 1.3.0

    1.3.0 (2022-02-23)

    Features

    • workflows: set versionClient to module version (55f0d92)

    This PR was generated with Release Please. See documentation.

    autorelease: tagged size: m 
    opened by release-please[bot] 46
  • KMS cannot Get, Set, or Test IAM

    KMS cannot Get, Set, or Test IAM

    Client

    KMS

    Describe Your Environment

    MacBook Pro (15-inch, 2017), 10.14.2 (18C54) 2.8 GHz Intel Core i7 16 GB 2133 MHz LPDDR3 Radeon Pro 555 2048 MB Intel HD Graphics 630 1536 MB

    But also reproducible everywhere

    Expected Behavior

    KMS clients should be able to Get, Set, and Test IAM policies.

    Actual Behavior

    Performing any Get, Set, or Test operations using the iam.Handle returns the following error:

    rpc error: code = NotFound desc = The request concerns location 'us-central1' but was sent to location 'global'. Either Cloud KMS is not available in 'us-central1' or the request was misrouted. Make sure the 'x-goog-request-params' metadata is set correctly; see https://cloud.google.com/kms/docs/grpc for more information.
    

    Where "us-central1" corresponds to the region in which my KMS keys exist. I conferred with the KMS team, and it appears that the x-goog-request-params is not set on IAM calls, which appears to be the root cause.

    Reproduction

    Run this sample, changing the keyRing constant to the full resource URL of a keyring in a project in any location other than "global".

    package main
    
    import (
    	"context"
    	"log"
    
    	cloudkms "cloud.google.com/go/kms/apiv1"
    	kmspb "google.golang.org/genproto/googleapis/cloud/kms/v1"
    )
    
    const keyRing = "projects/my-project/..." // Fill with existing keyring
    
    func main() {
    	ctx := context.Background()
    	client, err := cloudkms.NewKeyManagementClient(ctx)
    	if err != nil {
    		panic(err)
    	}
    
    	resp, err := client.KeyRingIAM(&kmspb.KeyRing{
    		Name: keyRing,
    	}).Policy(context.Background())
    	if err != nil {
    		panic(err)
    	}
    
    	log.Printf("#%v", resp)
    }
    

    Diagnoses

    The KeyRingIAM func creates a handle wrapper around the KMS client's Connection object which drops straight into the iam package. There doesn't appear to be a way to pass additional metadata pairs to the IAM client, so when gax invokes the policy requests, they fail.

    I confirmed the API works as-expected with the headers on the request by adding the following method to the KMS client itself so I can access the request fields:

    func (c *KeyManagementClient) GetKeyRingIAM(ctx context.Context, req *kmspb.GetKeyRingRequest, opts ...gax.CallOption) (*iam.Policy, error) {
    	md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", req.GetName()))
    	ctx = insertMetadata(ctx, c.xGoogMetadata, md)
    
    	// Works with or without the additional options here, kept for parity with other KMS client funcs
    	opts = append(c.CallOptions.GetKeyRing[0:len(c.CallOptions.GetKeyRing):len(c.CallOptions.GetKeyRing)], opts...)
    
    	var proto *pb.Policy
    	err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
    		var err error
    		// Create the client here so we can pass it the proper context
    		iamClient := pb.NewIAMPolicyClient(c.Connection())
    		proto, err = iamClient.GetIamPolicy(ctx, &pb.GetIamPolicyRequest{Resource: req.GetName()}, settings.GRPC...)
    		return err
    	}, opts...)
    	if err != nil {
    		return nil, err
    	}
    	return &iam.Policy{InternalProto: proto}, nil
    }
    

    Note this function lives in the kms package and injects the x-google-request-params into the context before creating the IAM client. I think this might be the best approach to preserve those headers without significant altercations to the iam package itself, but it means that the client does not given an iam.Handle to the user directly.

    Alternatives

    • Provide top-level functionality in the IAM package to add headers
    • Allow objects to pass a context to the IAM handler and store it on the struct (gross)
    • Force uses to manually add metadata fields (even grosser)
    type: bug priority: p2 api: cloudkms 
    opened by sethvargo 44
  • chore: release main

    chore: release main

    :robot: I have created a release beep boop

    aiplatform: 1.14.0

    1.14.0 (2022-06-29)

    Features

    • aiplatform: add BatchImportModelEvaluationSlices API in aiplatform v1 model_service.proto (f01bf32)
    • aiplatform: add BatchImportModelEvaluationSlices API in aiplatform v1beta1 model_service.proto (f01bf32)
    • aiplatform: add ListSavedQueries rpc to aiplatform v1 dataset_service.proto feat: add saved_query.proto to aiplatform v1 feat: add saved_query_id to InputDataConfig in aiplatform v1 training_pipeline.proto (350e276)
    • aiplatform: add ListSavedQueries rpc to aiplatform v1beta1 dataset_service.proto feat: add saved_query.proto to aiplatform v1beta1 feat: add saved_query_id to InputDataConfig in aiplatform v1beta1 training_pipeline.proto (350e276)
    • aiplatform: add model_monitoring_config to BatchPredictionJob in aiplatform v1beta1 batch_prediction_job.proto (5fe3b1d)
    • aiplatform: add model_version_id to BatchPredictionJob in aiplatform v1 batch_prediction_job.proto (f01bf32)
    analytics: 0.8.0

    0.8.0 (2022-06-29)

    Features

    • analytics/admin: Enable REST transport for most of Java and Go clients (f01bf32)
    • analytics: start generating REST client for beta clients (25b7775)
    area120: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • area120: start generating REST client for beta clients (25b7775)
    asset: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • asset: start generating REST client for beta clients (25b7775)
    assuredworkloads: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • assuredworkloads: release 1.0.0 (7678be5)
    • assuredworkloads: start generating REST client for beta clients (25b7775)

    Miscellaneous Chores

    • assuredworkloads: release 1.0.0 (8147948)
    automl: 1.4.0

    1.4.0 (2022-06-29)

    Features

    • automl: start generating REST client for beta clients (25b7775)
    binaryauthorization: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • binaryauthorization: release 1.0.0 (7678be5)
    • binaryauthorization: start generating REST client for beta clients (25b7775)

    Miscellaneous Chores

    • binaryauthorization: release 1.0.0 (25c4440)
    channel: 1.7.0

    1.7.0 (2022-06-29)

    Features

    • channel: google.longrunning.Operations for Cloud Channel apis (350e276)
    cloudtasks: 1.4.0

    1.4.0 (2022-06-29)

    Features

    • cloudtasks: start generating REST client for beta clients (25b7775)
    containeranalysis: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • containeranalysis: start generating REST client for beta clients (25b7775)
    dataflow: 0.5.0

    0.5.0 (2022-06-29)

    Features

    • dataflow: start generating REST client for beta clients (25b7775)
    dataplex: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • dataplex: release 1.0.0 (7678be5)

    Miscellaneous Chores

    • dataplex: release 1.0.0 (b165e15)
    dataqna: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • dataqna: start generating REST client for beta clients (25b7775)
    datastream: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • datastream: release 1.0.0 (7678be5)
    • datastream: start generating REST client for beta clients (25b7775)

    Miscellaneous Chores

    • datastream: release 1.0.0 (53f7cbd)
    dialogflow: 1.11.0

    1.11.0 (2022-06-29)

    Features

    • dialogflow: start generating REST client for beta clients (25b7775)
    domains: 0.5.0

    0.5.0 (2022-06-29)

    Features

    • domains: start generating REST client for beta clients (25b7775)
    gaming: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • gaming: temporarily remove REGAPIC support (199b725)
    gkehub: 0.8.0

    0.8.0 (2022-06-29)

    Features

    • gkehub: start generating REST client for beta clients (25b7775)
    ids: 1.0.0

    1.0.0 (2022-06-29)

    Features

    Miscellaneous Chores

    language: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • language: start generating REST client for beta clients (25b7775)
    lifesciences: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • lifesciences: start generating REST client for beta clients (25b7775)
    memcache: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • memcache: start generating REST client for beta clients (25b7775)
    metastore: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • metastore: start generating REST client for beta clients (25b7775)
    networkmanagement: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • networkmanagement: introduce a projects_missing_permissions field in the AbortInfo structure (199b725)
    notebooks: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • notebooks: release 1.0.0 (7678be5)

    Miscellaneous Chores

    • notebooks: release 1.0.0 (1b39bf4)
    optimization: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • optimization: release 1.0.0 (7678be5)

    Miscellaneous Chores

    • optimization: release 1.0.0 (96b9b05)
    osconfig: 1.6.0

    1.6.0 (2022-06-29)

    Features

    • osconfig: start generating REST client for beta clients (25b7775)
    oslogin: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • oslogin: start generating REST client for beta clients (25b7775)
    phishingprotection: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • phishingprotection: start generating REST client for beta clients (25b7775)
    privatecatalog: 0.4.0

    0.4.0 (2022-06-29)

    Features

    • privatecatalog: start generating REST client for beta clients (25b7775)
    recommender: 1.4.0

    1.4.0 (2022-06-29)

    Features

    • recommender: Implement configurable recommenders and update .bazel files (199b725)
    • recommender: start generating REST client for beta clients (25b7775)
    redis: 1.6.0

    1.6.0 (2022-06-29)

    Features

    • redis: start generating REST client for beta clients (25b7775)
    scheduler: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • scheduler: start generating REST client for beta clients (25b7775)
    secretmanager: 1.5.0

    1.5.0 (2022-06-29)

    Features

    • secretmanager: start generating REST client for beta clients (25b7775)
    servicedirectory: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • servicedirectory: start generating REST client for beta clients (25b7775)
    speech: 1.5.0

    1.5.0 (2022-06-29)

    Features

    • speech: start generating REST client for beta clients (25b7775)
    talent: 0.9.0

    0.9.0 (2022-06-29)

    Features

    • talent: start generating REST client for beta clients (25b7775)
    video: 1.7.0

    1.7.0 (2022-06-29)

    Features

    • video/livestream: add C++ library rules for the Live Stream API (199b725)
    • video/livestream: release as GA (5be6d33)
    • video/stitcher: release as GA (5be6d33)
    videointelligence: 1.4.0

    1.4.0 (2022-06-29)

    Features

    • videointelligence: start generating REST client for beta clients (25b7775)
    vmmigration: 1.0.0

    1.0.0 (2022-06-29)

    Features

    • vmmigration: release 1.0.0 (7678be5)

    Miscellaneous Chores

    • vmmigration: release 1.0.0 (7951d3e)
    webrisk: 1.3.0

    1.3.0 (2022-06-29)

    Features

    • webrisk: start generating REST client for beta clients (25b7775)
    workflows: 1.5.0

    1.5.0 (2022-06-29)

    Features

    • workflows: release as GA (5be6d33)
    • workflows: start generating REST client for beta clients (25b7775)

    This PR was generated with Release Please. See documentation.

    autorelease: tagged size: m 
    opened by release-please[bot] 43
  • PubSub subscription.Receive stops receiving messages

    PubSub subscription.Receive stops receiving messages

    Hi, we are having a problem where one of our subscriptions stops receiving messages with no errors reported. Other subscriptions in the same app continue to work but these are not heavily used. Is there anyway to debug the issue? We are considering adding a scheduled closing of the PubSub client and re-creating it as a workaround. We are using v0.19.0. Thanks in advance for any advice

    type: bug api: pubsub priority: p1 
    opened by lc-chrisbarton 42
  • storage: Make GoogleAccessID and PrivateKey optional

    storage: Make GoogleAccessID and PrivateKey optional

    Hi,

    I noticed that SignedURLs for Go doesn't make use of the service account directly and has a developer provide parameters to generate the key. Specifically: GoogleAccessID and PrivateKey. I don't think they should be removed but made optional if GOOGLE_APPLICATION_CREDENTIALS is provided.

    pkey, err := ioutil.ReadFile("my-private-key.pem")
    if err != nil {
        // TODO: handle error.
    }
    url, err := storage.SignedURL("my-bucket", "my-object", &storage.SignedURLOptions{
        GoogleAccessID: "[email protected]",
        PrivateKey:     pkey,
        Method:         "GET",
        Expires:        time.Now().Add(48 * time.Hour),
    })
    if err != nil {
        // TODO: handle error.
    }
    fmt.Println(url)
    
    type: feature request api: storage 
    opened by frankyn 37
  • Unable to create write data into bucket , not an app engine context

    Unable to create write data into bucket , not an app engine context

    Initially when tried running the storage app-engine example code i ran into this following issue which is being discussed in this stackoverflow thread http://stackoverflow.com/questions/29010718/google-cloud-storage-client-app-error-using-go-runtime-google-app-engine . The discussion enabled me to fix the issue with sample code and get it compiled https://github.com/GoogleCloudPlatform/gcloud-golang/blob/master/examples/storage/appengine/app.go.

    But now i have deployed this code on Go runtime on app engine , and i get this following error when i check it on the Log monitoring facility in the developers console createFile: unable to write data to bucket "xxxx-87609.appspot.com", file "demo-testfile-go": Post https://www.googleapis.com/upload/storage/v1/b/xxxx-xxxx-87609.appspot.com/o?alt‌​=json&projection=full&uploadType=multipart: not an App Engine context

    It would have been great if the example code would have run gracefully without the need to fix it . Here is how im initializing the context ( as suggested in the stackoverflow answer)

    c := appengine.NewContext(r)
    hc := &http.Client{}
    ctx := cloud.NewContext(appengine.AppID(c), hc)
    hc.Transport = &oauth2.Transport{
        Source: google.AppEngineTokenSource(ctx, storage.ScopeFullControl),
        Base:   &urlfetch.Transport{Context: c},
    }
    ctx = cloud.NewContext(appengine.AppID(c), hc)
    w.Header().Set("Content-Type", "text/plain; charset=utf-8")
    fmt.Fprintf(w, "Demo GCS Application running from Version: %v\n", appengine.VersionID(c))
    fmt.Fprintf(w, "Using bucket name: %v\n\n", bucket)
    
    d := &demo{
        c:   c,
        w:   w,
        ctx: ctx,
    }
    
    n := "demo-testfile-go"
    d.createFile(n)
    d.readFile(n)
    
    triage me :rotating_light: 
    opened by hackintoshrao 36
  • chore(main): release storage 1.26.0

    chore(main): release storage 1.26.0

    opened by release-please[bot] 0
  • feat(pubsub): support exactly once delivery

    feat(pubsub): support exactly once delivery

    The pubsub-exactly-once branch has code that has been reviewed in individual PRS already.

    While submitting this PR, we will need to do the following in quick succession:

    1. Merge PR with the cloud.google.com/go/internal library with changes to message.go supporting AckResult
    2. Update the go.mod file in this PR to point to the base package rather than a commit
    3. Merge this PR
    4. Merge a PR that implements successful AckWithResult and NackWithResult for Pub/Sub Lite even though Lite does not support exactly once.
    api: pubsub size: xl 
    opened by hongalex 0
  • chore: release main

    chore: release main

    :robot: I have created a release beep boop

    compute: 1.9.0

    1.9.0 (2022-08-11)

    Features

    • compute/metadata: add http timeout to metadata client (#6499) (37d49f7), refs #6498

    This PR was generated with Release Please. See documentation.

    autorelease: pending size: s 
    opened by release-please[bot] 0
  • feat: add aliasgen to fix migrated import paths

    feat: add aliasgen to fix migrated import paths

    This will assist us in the migration effort and is also a tool our users can use. The tool is allowlisted to only migrate specific imports, and only if we have made a configuration change to say the code has been migrated.

    size: xl 
    opened by codyoss 0
  • httpreplay: Get error

    httpreplay: Get error "flag redefined: v" when trying to get new Recorder

    httpreplay version: v0.103.0

    Code

    _, err := httpreplay.NewRecorder("gcs-recorder-output.txt", []byte{})
    if err != nil {
      return nil, err
    }
    

    Expected behavior

    httpreplay.Recorder is instantiated without any errors.

    Actual behavior

    Got the following runtime error when trying to run the compiled binary:

    panic: ./bin flag redefined: v
    
    goroutine 1 [running]:
    flag.(*FlagSet).Var(0xc00004e1e0, {0x22c1d40, 0xc0003294d8}, {0x22b2b69, 0x1}, {0x20dc402, 0x9})
    	/usr/local/Cellar/go/1.18.2/libexec/src/flag/flag.go:879 +0x2f4
    flag.(*FlagSet).IntVar(...)
    	/usr/local/Cellar/go/1.18.2/libexec/src/flag/flag.go:658
    flag.(*FlagSet).Int(0x8?, {0x22b2b69, 0x1}, 0x0, {0x20dc402, 0x9})
    	/usr/local/Cellar/go/1.18.2/libexec/src/flag/flag.go:671 +0x7e
    flag.Int(...)
    	/usr/local/Cellar/go/1.18.2/libexec/src/flag/flag.go:678
    github.com/google/martian/v3.init()
    	/Users/tomasb/go/src/arista/vendor/github.com/google/martian/v3/init.go:24 +0x65
    

    It looks like "github.com/google/martian/v3" is being imported twice. In vendor/cloud.google.com/go/httpreplay/internal/proxy/log.go and in vendor/cloud.google.com/go/httpreplay/internal/proxy/record.go. This causes the Init function from vendor/github.com/google/martian/v3/init.go to run:

    var (
    	level = flag.Int("v", 0, "log level")
    )
    
    // Init runs common initialization code for a martian proxy.
    func Init() {
    	flag.Parse()
    	mlog.SetLevel(*level)
    }
    

    This seems to cause the flag parsing error.

    As a work-around you can do:

    // Init runs common initialization code for a martian proxy.
    func Init() {
    	level := flag.Int("v", 0, "log level")
    	flag.Parse()
    	mlog.SetLevel(*level)
    }
    

    which seems to run fine.

    Go Environment

    $ go version go version go1.18.2 darwin/amd64

    type: question 
    opened by tomasbanet 1
Releases(storage/v1.25.0)
  • storage/v1.25.0(Aug 11, 2022)

  • vision/v2.1.0(Aug 10, 2022)

  • monitoring/v1.6.0(Aug 10, 2022)

  • compute/v1.8.0(Aug 10, 2022)

  • analytics/v0.9.0(Aug 10, 2022)

    0.9.0 (2022-08-09)

    Features

    • analytics/admin: add GetAudience, 'ListAudience', 'CreateAudience', 'UpdateAudience', 'ArchiveAudience' methods to the Admin API v1alpha feat: add GetAttributionSettings, UpdateAttributionSettings methods to the Admin API v1alpha (83d8e8d)
    • analytics/admin: add RunAccessReport method to the Admin API v1alpha (83d8e8d)
    Source code(tar.gz)
    Source code(zip)
  • bigquery/v1.37.0(Aug 4, 2022)

    1.37.0 (2022-08-04)

    Features

    • bigquery/connection: Add service_account_id output field to CloudSQL properties (1d6fbcc)
    • bigquery/storage/managedwriter: refactor AppendResponse (#6402) (c07bca2)
    • bigquery: support JSON as a data type (#5986) (835fe4f)

    Bug Fixes

    • bigquery: include user_email field when requesting job information (#6256) (da42b4e)

    Documentation

    • bigquery/storage: clarify size limitations for AppendRowsRequest chore: add preferred_min_stream_count to CreateReadSessionRequest chore: add write_stream to AppendRowsResponse (1d6fbcc)
    Source code(tar.gz)
    Source code(zip)
  • retail/v1.5.0(Aug 2, 2022)

    1.5.0 (2022-08-02)

    Features

    • retail: new model service to manage recommendation models feat: support case insensitive match on search facets feat: allow disabling spell check in search requests feat: allow adding labels in search requests feat: allow returning min/max values on search numeric facets feat: allow using serving configs as an alias of placements feat: allow enabling recommendation filtering on custom attributes feat: return output BigQuery table on product / event export response feat: allow skiping default branch protection when doing product full import docs: keep the API doc up-to-date with recent changes (338d9c3)
    • retail: support case insensitive match on search facets feat: allow disabling spell check in search requests feat: allow adding labels in search requests feat: allow returning min/max values on search numeric facets feat: allow using serving configs as an alias of placements feat: allow enabling recommendation filtering on custom attributes feat: return output BigQuery table on product / event export response docs: keep the API doc up-to-date with recent changes (1d6fbcc)
    • retail: support case insensitive match on search facets feat: allow to return min/max values on search numeric facets feat: allow to use serving configs as an alias of placements docs: keep the API doc up-to-date with recent changes (338d9c3)
    Source code(tar.gz)
    Source code(zip)
  • recommendationengine/v0.3.0(Aug 2, 2022)

  • dialogflow/v1.12.1(Aug 2, 2022)

  • dataform/v0.2.0(Aug 2, 2022)

  • container/v1.3.1(Aug 2, 2022)

  • contactcenterinsights/v1.2.2(Aug 2, 2022)

  • apigeeregistry/v0.1.0(Aug 2, 2022)

  • analytics/v0.8.1(Aug 2, 2022)

  • aiplatform/v1.16.0(Aug 2, 2022)

    1.16.0 (2022-08-02)

    Features

    • aiplatform: add DeploymentResourcePool in aiplatform v1beta1 deployment_resource_pool.proto feat: add DeploymentResourcePoolService in aiplatform v1beta1 deployment_resource_pool_service.proto feat: add SHARED_RESOURCES to DeploymentResourcesType in aiplatform v1beta1 model.proto (1d6fbcc)
    • aiplatform: making network arg optional in aiplatform v1 custom_job.proto feat: added SHARED_RESOURCES enum to aiplatform v1 model.proto docs: doc edits to aiplatform v1 dataset_service.proto, job_service.proto, model_service.proto, pipeline_service.proto, saved_query.proto, study.proto, types.proto (1d6fbcc)
    • aiplatform: making network arg optional in aiplatform v1beta1 custom_job.proto feat: DeploymentResourcePool and DeployementResourcePoolService added to aiplatform v1beta1 model.proto (cl/463147866) docs: doc edits to aiplatform v1beta1 job_service.proto, model_service.proto, pipeline_service.proto, saved_query.proto, study.proto, types.proto (1d6fbcc)
    Source code(tar.gz)
    Source code(zip)
  • bigtable/v1.16.0(Jul 27, 2022)

  • securitycenter/v1.10.0(Jul 26, 2022)

    1.10.0 (2022-07-26)

    Features

    • securitycenter: Added container field to findings attributes feat: Added kubernetes field to findings attribute. This field is populated only when the container is a kubernetes cluster explicitly (1ffeb95)
    Source code(tar.gz)
    Source code(zip)
  • networksecurity/v0.3.1(Jul 26, 2022)

  • artifactregistry/v1.4.0(Jul 26, 2022)

  • aiplatform/v1.15.0(Jul 26, 2022)

  • spanner/v1.36.0(Jul 25, 2022)

  • storage/v1.24.0(Jul 20, 2022)

  • vmmigration/v1.1.0(Jul 19, 2022)

  • spanner/v1.35.0(Jul 19, 2022)

  • dataplex/v1.1.0(Jul 19, 2022)

    1.1.0 (2022-07-19)

    Features

    • dataplex: Add IAM support for Explore content APIs feat: Add support for custom container for Task feat: Add support for cross project for Task feat: Add support for custom encryption key to be used for encrypt data on the PDs associated with the VMs in your Dataproc cluster for Task feat: Add support for Latest job in Task resource feat: User mode filter in Explore list sessions API feat: Support logging sampled file paths per partition to Cloud logging for Discovery event (8b17366)
    Source code(tar.gz)
    Source code(zip)
  • assuredworkloads/v1.2.0(Jul 19, 2022)

    1.2.0 (2022-07-19)

    Features

    • assuredworkloads: Updated the method signature of analyzeWorkloadMove for v1beta API (53246aa)
    • assuredworkloads: Updated the method signature of analyzeWorkloadMove for v1beta API to accept project as source. AnalyzeWorkloadMove now also returns information about org policy differences between the project and target folder (53246aa)
    Source code(tar.gz)
    Source code(zip)
  • pubsub/v1.24.0(Jul 18, 2022)

  • bigquery/v1.36.0(Jul 18, 2022)

  • talent/v1.0.0(Jul 12, 2022)

  • servicemanagement/v1.3.1(Jul 12, 2022)

Owner
Google APIs
Clients for Google APIs and tools that help produce them.
Google APIs
Google Cloud Messaging for application servers implemented using the Go programming language.

gcm The Android SDK provides a nice convenience library (com.google.android.gcm.server) that greatly simplifies the interaction between Java-based app

Adriano Orioli 30 Nov 16, 2021
Client for the cloud-iso-client

cloud-iso-client Client for the cloud-iso-client. Register an API token Before using this client library, you need to register an API token under your

Virtomize 0 Dec 6, 2021
A collection of cloud security icons :cloud::lock:

Cloud Security Icons These icons are published under the extremely permissive Creative Commons Zero v1.0 Universal license. Downloads We provide all i

Aqua Security 115 Aug 3, 2022
A Wrapper Client for Google Spreadsheet API (Sheets API)

Senmai A Wrapper Client for Google Spreadsheet API (Sheets API) PREPARATION Service Account and Key File Create a service account on Google Cloud Plat

ytnobody / satoshi azuma 0 Nov 5, 2021
A Go client implementing a client-side distributed consumer group client for Amazon Kinesis.

Kinesumer is a Go client implementing a client-side distributed consumer group client for Amazon Kinesis.

당근마켓 64 Jul 15, 2022
Clusterpedia-client - clusterpedia-client supports the use of native client-go mode to call the clusterpedia API

clusterpedia-client supports the use of native client-go mode to call the cluste

Calvin Chen 4 Jan 7, 2022
Client-go - Clusterpedia-client supports the use of native client-go mode to call the clusterpedia API

clusterpedia-client supports the use of native client-go mode to call the cluste

clusterpedia.io 7 Jun 17, 2022
Cloud torrent: a self-hosted remote torrent client, written in Go (golang)

Cloud torrent is a a self-hosted remote torrent client, written in Go (golang).

null 0 Dec 21, 2021
Google Adwords API for Go

gads Package gads provides a wrapper for the Google Adwords SOAP API. installation go get github.com/emiddleton/gads setup In order to access the API

Edward Middleton 49 Dec 4, 2021
Unofficial Google Trends API for Go

Google Trends API for Go Unofficial Google Trends API for Golang gogtrends is API wrapper which allows to get reports from Google Trends. All contribu

Max Ivanov 65 Jun 14, 2022
Auto-generated Google APIs for Go.

Google APIs Client Library for Go Getting Started $ go get google.golang.org/api/tasks/v1 $ go get google.golang.org/api/moderator/v1 $ go get google.

Google APIs 3.1k Aug 5, 2022
Simple Reporting for Google Analytics

##Google analytics Data pull Lightweight Golang library for pulling Google Analytics API data. Built for use with Core Reporting API (v3): https://dev

Nithin Meppurathu 12 Mar 26, 2020
Sync your bank transactions with google sheets using Open Banking APIs

Sync your bank transactions with google sheets using Open Banking APIs

Alex Russell-Saw 30 Jul 22, 2022
Sync your bank transactions with google sheets using Open Banking APIs

this is a markdown version of the copy on the site landing page: https://youneedaspreadsheet.com You need a spreadsheet ?? Get on top of your finances

Alex Russell-Saw 30 Jul 22, 2022
Google Maps API checker

GAP Google API checker. Based on the study Unauthorized Google Maps API Key Usage Cases, and Why You Need to Care and Google Maps API (Not the Key) Bu

Joan Bono 41 Jun 20, 2022
Mattermost Plugin - Starts meeting with Google Meet

Mattermost Plugin - Starts meeting with Google Meet

Paulo Mateus 29 Jun 21, 2022
View Wikiloc.com trails in Google Earth

Wikiloc Google Earth layer View Wikiloc.com trails in Google Earth. Tiny http server written in Go that fetch trails from wikiloc.com to compose KML u

Jonathan Mataloni 13 Jul 22, 2022
Use Google REST api to extract your personal Photo Library

Photo Go A better approach to extracting your photos from Google to your personal cloud. I'm moving my photos out of Google to a Synology NAS. create

James 2 Dec 7, 2021
RawLink makes backlinks queried from ahref ready for *Google Search Console*

Raw Link This simple program makes backlinks queried from ahref ready for Google Search Console. See footnote 1 for more information. It can be used t

Emre 1 Feb 8, 2022