Listing Users - AWS SDK for Go

Listing Users

The following example lists the names of all users, or lists additional details about a user if a user name is specified on the command line. Choose Copy to save the code locally, or see the link to the complete example at the end of this topic.

Import the following Go packages.

import ( "os" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/workdocs" "flag" "fmt" )

Get an optional user name and organization ID from the command line. If the organization ID is missing, print an error message and quit.

orgPtr := flag.String("o", "", "The ID of your organization") userPtr := flag.String("u", "", "User for whom info is retrieved") flag.Parse() if *orgPtr == "" { fmt.Println("You must supply the organization ID") flag.PrintDefaults() os.Exit(1) }

Create input for the DescribeUsers method.

input := new(workdocs.DescribeUsersInput) input.OrganizationId = orgPtr // Show all users if we don't get a user name if *userPtr == "" { fmt.Println("Getting info about all users") } else { fmt.Println("Getting info about user " + *userPtr) input.Query = userPtr }

Create a session and Amazon WorkDocs client.

sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) svc := workdocs.New(sess)

Call DescribeUsers and display the information for the user or all users.

result, err := svc.DescribeUsers(input) if err != nil { fmt.Println("Error getting user info", err) return } if *userPtr == "" { fmt.Println("Found", *result.TotalNumberOfUsers, "users") fmt.Println("") } for _, user := range result.Users { fmt.Println("Username: " + *user.Username) if *userPtr != "" { fmt.Println("Firstname: " + *user.GivenName) fmt.Println("Lastname: " + *user.Surname) fmt.Println("Email: " + *user.EmailAddress) fmt.Println("Root folder " + *user.RootFolderId) } fmt.Println("") }

See the complete example on GitHub.