// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: BUSL-1.1 package managedgroupscmd import ( "fmt" "time" "github.com/hashicorp/boundary/api" "github.com/hashicorp/boundary/api/managedgroups" "github.com/hashicorp/boundary/internal/cmd/base" ) func (c *Command) printListTable(items []*managedgroups.ManagedGroup) string { if len(items) == 0 { return "No managed groups found" } var output []string output = []string{ "", "Managed Group information:", } for i, item := range items { if i > 0 { output = append(output, "") } if item.Id != "" { output = append(output, fmt.Sprintf(" ID: %s", item.Id), ) } else { output = append(output, fmt.Sprintf(" ID: %s", "(not available)"), ) } if item.Version > 0 { output = append(output, fmt.Sprintf(" Version: %d", item.Version), ) } if item.Type != "" { output = append(output, fmt.Sprintf(" Type: %s", item.Type), ) } if item.Name != "" { output = append(output, fmt.Sprintf(" Name: %s", item.Name), ) } if item.Description != "" { output = append(output, fmt.Sprintf(" Description: %s", item.Description), ) } if len(item.AuthorizedActions) > 0 { output = append(output, " Authorized Actions:", base.WrapSlice(6, item.AuthorizedActions), ) } } return base.WrapForHelpText(output) } func printItemTable(item *managedgroups.ManagedGroup, resp *api.Response) string { nonAttributeMap := map[string]any{} if item.Id != "" { nonAttributeMap["ID"] = item.Id } if item.Version != 0 { nonAttributeMap["Version"] = item.Version } if item.Type != "" { nonAttributeMap["Type"] = item.Type } if !item.CreatedTime.IsZero() { nonAttributeMap["Created Time"] = item.CreatedTime.Local().Format(time.RFC1123) } if !item.UpdatedTime.IsZero() { nonAttributeMap["Updated Time"] = item.UpdatedTime.Local().Format(time.RFC1123) } if item.AuthMethodId != "" { nonAttributeMap["Auth Method ID"] = item.AuthMethodId } if item.Name != "" { nonAttributeMap["Name"] = item.Name } if item.Description != "" { nonAttributeMap["Description"] = item.Description } maxLength := base.MaxAttributesLength(nonAttributeMap, item.Attributes, keySubstMap) ret := []string{ "", "Managed Group information:", base.WrapMap(2, maxLength+2, nonAttributeMap), } if item.Scope != nil { ret = append(ret, "", " Scope:", base.ScopeInfoForOutput(item.Scope, maxLength), ) } if len(item.AuthorizedActions) > 0 { ret = append(ret, "", " Authorized Actions:", base.WrapSlice(4, item.AuthorizedActions), ) } if len(item.MemberIds) > 0 { ret = append(ret, "", " Member IDs:", base.WrapSlice(4, item.MemberIds), ) } if len(item.Attributes) > 0 { ret = append(ret, "", " Attributes:", base.WrapMap(4, maxLength, item.Attributes), ) } return base.WrapForHelpText(ret) } var keySubstMap = map[string]string{ "filter": "Filter", }