Skip to main content

Get IAM policies

This page describes how to programmatically retrieve policies assigned to an Image API resource.

Sample

The following code sample shows how to retrieve policies assigned to an Image API resource.

Replace [ALBUM] with the resource name of the album that the policy should be retrieved from, e.g. users/123/albums/456.

tip

Tip: do not forget to replace CLIENT-ID and CLIENT-SECRET with valid IAM Service Account client credentials.

package main

import (
"context"
"log"

"golang.org/x/oauth2/clientcredentials"

"google.golang.org/api/option"
"google.golang.org/genproto/googleapis/iam/v1"

gapic "github.com/animeapis/api-go-client/image/v1alpha1"
)

var (
Album = "[ALBUM]"

ClientID = "[CLIENT-ID]"
ClientSecret = "[CLIENT-SECRET]"
)

var (
TokenURL = "https://accounts.animeshon.com/o/oauth2/token"
Endpoint = "image.animeapis.com:443"
)

func main() {
ctx := context.Background()

config := &clientcredentials.Config{
ClientID: ClientID,
ClientSecret: ClientSecret,
TokenURL: TokenURL,
}

options := []option.ClientOption{
option.WithEndpoint(Endpoint),
option.WithTokenSource(config.TokenSource(ctx)),
}

client, err := gapic.NewClient(ctx, options...)
if err != nil {
log.Fatalf("NewClient: %s", err)
}

request := &iam.GetIamPolicyRequest{
Resource: Album,
}

policy, err := client.GetIamPolicy(ctx, request)
if err != nil {
log.Fatalf("GetIamPolicy: %s", err)
}

log.Printf("resource: %s", Album)
log.Printf("bindings: %v", policy.Bindings)
}
View on GitHub