Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion otdfctl/cmd/policy/resourceMappingGroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,10 @@ func policyListResourceMappingGroups(cmd *cobra.Command, args []string) {

limit := c.Flags.GetRequiredInt32("limit")
offset := c.Flags.GetRequiredInt32("offset")
nsID := c.Flags.GetOptionalID("namespace-id")
nsFqn := c.Flags.GetOptionalString("namespace-fqn")

resp, err := h.ListResourceMappingGroups(cmd.Context(), limit, offset)
resp, err := h.ListResourceMappingGroups(cmd.Context(), nsID, nsFqn, limit, offset)
if err != nil {
cli.ExitWithError("Failed to list resource mapping groups", err)
}
Expand Down Expand Up @@ -180,6 +182,16 @@ func initResourceMappingGroupsCommands() {
listDoc := man.Docs.GetCommand("policy/resource-mapping-groups/list",
man.WithRun(policyListResourceMappingGroups),
)
listDoc.Flags().String(
listDoc.GetDocFlag("namespace-id").Name,
listDoc.GetDocFlag("namespace-id").Default,
listDoc.GetDocFlag("namespace-id").Description,
)
listDoc.Flags().String(
listDoc.GetDocFlag("namespace-fqn").Name,
listDoc.GetDocFlag("namespace-fqn").Default,
listDoc.GetDocFlag("namespace-fqn").Description,
)
injectListPaginationFlags(listDoc)

updateDoc := man.Docs.GetCommand("policy/resource-mapping-groups/update",
Expand Down
60 changes: 52 additions & 8 deletions otdfctl/cmd/policy/resourceMappings.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ func createResourceMapping(cmd *cobra.Command, args []string) {

attrID := c.Flags.GetRequiredID("attribute-value-id")
grpID := c.Flags.GetOptionalID("group-id")
nsID := c.Flags.GetOptionalID("namespace-id")
nsFqn := c.Flags.GetOptionalString("namespace-fqn")
terms = c.Flags.GetStringSlice("terms", terms, cli.FlagsStringSliceOptions{
Min: 1,
})
metadataLabels = c.Flags.GetStringSlice("label", metadataLabels, cli.FlagsStringSliceOptions{Min: 0})

resourceMapping, err := h.CreateResourceMapping(attrID, terms, grpID, getMetadataMutable(metadataLabels))
resourceMapping, err := h.CreateResourceMapping(cmd.Context(), attrID, terms, grpID, nsID, nsFqn, getMetadataMutable(metadataLabels))
if err != nil {
cli.ExitWithError("Failed to create resource mapping", err)
}
Expand All @@ -40,6 +42,8 @@ func createResourceMapping(cmd *cobra.Command, args []string) {
{"Terms", strings.Join(resourceMapping.GetTerms(), ", ")},
{"Group Id", resourceMapping.GetGroup().GetId()},
{"Group Name", resourceMapping.GetGroup().GetName()},
{"Namespace Id", resourceMapping.GetNamespace().GetId()},
{"Namespace", resourceMapping.GetNamespace().GetFqn()},
}
if mdRows := getMetadataRows(resourceMapping.GetMetadata()); mdRows != nil {
rows = append(rows, mdRows...)
Expand All @@ -55,7 +59,7 @@ func getResourceMapping(cmd *cobra.Command, args []string) {

id := c.Flags.GetRequiredID("id")

resourceMapping, err := h.GetResourceMapping(id)
resourceMapping, err := h.GetResourceMapping(cmd.Context(), id)
if err != nil {
cli.ExitWithError(fmt.Sprintf("Failed to get resource mapping (%s)", id), err)
}
Expand All @@ -66,6 +70,8 @@ func getResourceMapping(cmd *cobra.Command, args []string) {
{"Terms", strings.Join(resourceMapping.GetTerms(), ", ")},
{"Group Id", resourceMapping.GetGroup().GetId()},
{"Group Name", resourceMapping.GetGroup().GetName()},
{"Namespace Id", resourceMapping.GetNamespace().GetId()},
{"Namespace", resourceMapping.GetNamespace().GetFqn()},
}
if mdRows := getMetadataRows(resourceMapping.GetMetadata()); mdRows != nil {
rows = append(rows, mdRows...)
Expand All @@ -81,8 +87,10 @@ func listResourceMappings(cmd *cobra.Command, args []string) {

limit := c.Flags.GetRequiredInt32("limit")
offset := c.Flags.GetRequiredInt32("offset")
nsID := c.Flags.GetOptionalID("namespace-id")
nsFqn := c.Flags.GetOptionalString("namespace-fqn")

resp, err := h.ListResourceMappings(cmd.Context(), limit, offset)
resp, err := h.ListResourceMappings(cmd.Context(), nsID, nsFqn, limit, offset)
if err != nil {
cli.ExitWithError("Failed to list resource mappings", err)
}
Expand All @@ -92,8 +100,8 @@ func listResourceMappings(cmd *cobra.Command, args []string) {
table.NewFlexColumn("attr_value_id", "Attribute Value Id", cli.FlexColumnWidthFive),
table.NewFlexColumn("attr_value", "Attribute Value", cli.FlexColumnWidthTwo),
table.NewFlexColumn("terms", "Terms", cli.FlexColumnWidthFour),
table.NewFlexColumn("group_id", "Group Id", cli.FlexColumnWidthFive),
table.NewFlexColumn("group_name", "Group Name", cli.FlexColumnWidthTwo),
table.NewFlexColumn("namespace", "Namespace", cli.FlexColumnWidthTwo),
table.NewFlexColumn("labels", "Labels", cli.FlexColumnWidthOne),
table.NewFlexColumn("created_at", "Created At", cli.FlexColumnWidthOne),
table.NewFlexColumn("updated_at", "Updated At", cli.FlexColumnWidthOne),
Expand All @@ -105,8 +113,8 @@ func listResourceMappings(cmd *cobra.Command, args []string) {
"id": resourceMapping.GetId(),
"attr_value_id": resourceMapping.GetAttributeValue().GetId(),
"attr_value": resourceMapping.GetAttributeValue().GetValue(),
"group_id": resourceMapping.GetGroup().GetId(),
"group_name": resourceMapping.GetGroup().GetName(),
"namespace": resourceMapping.GetNamespace().GetFqn(),
"terms": strings.Join(resourceMapping.GetTerms(), ", "),
"labels": metadata["Labels"],
"created_at": metadata["Created At"],
Expand All @@ -126,10 +134,12 @@ func updateResourceMapping(cmd *cobra.Command, args []string) {
id := c.Flags.GetRequiredID("id")
attrValueID := c.Flags.GetOptionalID("attribute-value-id")
grpID := c.Flags.GetOptionalID("group-id")
nsID := c.Flags.GetOptionalID("namespace-id")
nsFqn := c.Flags.GetOptionalString("namespace-fqn")
terms = c.Flags.GetStringSlice("terms", terms, cli.FlagsStringSliceOptions{})
metadataLabels = c.Flags.GetStringSlice("label", metadataLabels, cli.FlagsStringSliceOptions{Min: 0})

resourceMapping, err := h.UpdateResourceMapping(id, attrValueID, grpID, terms, getMetadataMutable(metadataLabels), getMetadataUpdateBehavior())
resourceMapping, err := h.UpdateResourceMapping(cmd.Context(), id, attrValueID, grpID, nsID, nsFqn, terms, getMetadataMutable(metadataLabels), getMetadataUpdateBehavior())
if err != nil {
cli.ExitWithError(fmt.Sprintf("Failed to update resource mapping (%s)", id), err)
}
Expand All @@ -140,6 +150,8 @@ func updateResourceMapping(cmd *cobra.Command, args []string) {
{"Terms", strings.Join(resourceMapping.GetTerms(), ", ")},
{"Group Id", resourceMapping.GetGroup().GetId()},
{"Group Name", resourceMapping.GetGroup().GetName()},
{"Namespace Id", resourceMapping.GetNamespace().GetId()},
{"Namespace", resourceMapping.GetNamespace().GetFqn()},
}
if mdRows := getMetadataRows(resourceMapping.GetMetadata()); mdRows != nil {
rows = append(rows, mdRows...)
Expand All @@ -158,12 +170,12 @@ func deleteResourceMapping(cmd *cobra.Command, args []string) {

cli.ConfirmAction(cli.ActionDelete, "resource-mapping", id, force)

resourceMapping, err := h.GetResourceMapping(id)
resourceMapping, err := h.GetResourceMapping(cmd.Context(), id)
if err != nil {
cli.ExitWithError(fmt.Sprintf("Failed to get resource mapping for delete (%s)", id), err)
}

_, err = h.DeleteResourceMapping(id)
_, err = h.DeleteResourceMapping(cmd.Context(), id)
if err != nil {
cli.ExitWithError(fmt.Sprintf("Failed to delete resource mapping (%s)", id), err)
}
Expand All @@ -174,6 +186,8 @@ func deleteResourceMapping(cmd *cobra.Command, args []string) {
{"Terms", strings.Join(resourceMapping.GetTerms(), ", ")},
{"Group Id", resourceMapping.GetGroup().GetId()},
{"Group Name", resourceMapping.GetGroup().GetName()},
{"Namespace Id", resourceMapping.GetNamespace().GetId()},
{"Namespace", resourceMapping.GetNamespace().GetFqn()},
}
t := cli.NewTabular(rows...)
common.HandleSuccess(cmd, resourceMapping.GetId(), t, resourceMapping)
Expand All @@ -199,6 +213,16 @@ func initResourceMappingsCommands() {
createDoc.GetDocFlag("group-id").Default,
createDoc.GetDocFlag("group-id").Description,
)
createDoc.Flags().String(
createDoc.GetDocFlag("namespace-id").Name,
createDoc.GetDocFlag("namespace-id").Default,
createDoc.GetDocFlag("namespace-id").Description,
)
createDoc.Flags().String(
createDoc.GetDocFlag("namespace-fqn").Name,
createDoc.GetDocFlag("namespace-fqn").Default,
createDoc.GetDocFlag("namespace-fqn").Description,
)
injectLabelFlags(&createDoc.Command, false)

getDoc := man.Docs.GetCommand("policy/resource-mappings/get",
Expand All @@ -213,6 +237,16 @@ func initResourceMappingsCommands() {
listDoc := man.Docs.GetCommand("policy/resource-mappings/list",
man.WithRun(listResourceMappings),
)
listDoc.Flags().String(
listDoc.GetDocFlag("namespace-id").Name,
listDoc.GetDocFlag("namespace-id").Default,
listDoc.GetDocFlag("namespace-id").Description,
)
listDoc.Flags().String(
listDoc.GetDocFlag("namespace-fqn").Name,
listDoc.GetDocFlag("namespace-fqn").Default,
listDoc.GetDocFlag("namespace-fqn").Description,
)
injectListPaginationFlags(listDoc)

updateDoc := man.Docs.GetCommand("policy/resource-mappings/update",
Expand All @@ -239,6 +273,16 @@ func initResourceMappingsCommands() {
updateDoc.GetDocFlag("group-id").Default,
updateDoc.GetDocFlag("group-id").Description,
)
updateDoc.Flags().String(
updateDoc.GetDocFlag("namespace-id").Name,
updateDoc.GetDocFlag("namespace-id").Default,
updateDoc.GetDocFlag("namespace-id").Description,
)
updateDoc.Flags().String(
updateDoc.GetDocFlag("namespace-fqn").Name,
updateDoc.GetDocFlag("namespace-fqn").Default,
updateDoc.GetDocFlag("namespace-fqn").Description,
)
injectLabelFlags(&updateDoc.Command, true)

deleteDoc := man.Docs.GetCommand("policy/resource-mappings/delete",
Expand Down
6 changes: 6 additions & 0 deletions otdfctl/docs/man/policy/resource-mapping-groups/list.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ command:
aliases:
- l
flags:
- name: namespace-id
Comment thread
alkalescent marked this conversation as resolved.
Outdated
description: Filter the list to resource mapping groups owned by this namespace ID.
default: ''
- name: namespace-fqn
description: Filter the list to resource mapping groups owned by this namespace FQN.
default: ''
- name: limit
shorthand: l
description: Limit retrieved count
Expand Down
6 changes: 6 additions & 0 deletions otdfctl/docs/man/policy/resource-mappings/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ command:
- name: group-id
description: The ID of the resource mapping group to assign this mapping to
default: ''
- name: namespace-id
description: Optional ID of the namespace that owns this resource mapping. If a group is provided, it must match the group's namespace.
default: ''
- name: namespace-fqn
description: Optional FQN of the namespace that owns this resource mapping (alternative to namespace-id).
default: ''
- name: label
description: "Optional metadata 'labels' in the format: key=value"
shorthand: l
Expand Down
6 changes: 6 additions & 0 deletions otdfctl/docs/man/policy/resource-mappings/list.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ command:
aliases:
- l
flags:
- name: namespace-id
description: Filter the list to resource mappings owned by this namespace ID.
default: ''
- name: namespace-fqn
description: Filter the list to resource mappings owned by this namespace FQN.
default: ''
- name: limit
shorthand: l
description: Limit retrieved count
Expand Down
6 changes: 6 additions & 0 deletions otdfctl/docs/man/policy/resource-mappings/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ command:
- name: group-id
description: The ID of the resource mapping group to assign this mapping to
default: ''
- name: namespace-id
description: Optional ID of the namespace that owns this resource mapping. If the mapping belongs to a group, it must match the group's namespace.
default: ''
- name: namespace-fqn
description: Optional FQN of the namespace that owns this resource mapping (alternative to namespace-id).
default: ''
- name: label
description: "Optional metadata 'labels' in the format: key=value"
shorthand: l
Expand Down
7 changes: 7 additions & 0 deletions otdfctl/e2e/resource-mapping.bats
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ teardown_file() {
}

@test "List resource mappings" {
# a grouped mapping is owned by its group's namespace; used to verify the
# owning namespace is surfaced in list output
GROUPED_RM_ID=$(./otdfctl $HOST $WITH_CREDS policy resource-mappings create --attribute-value-id "$RM_VAL2_ID" --terms "ns-list-check" --group-id "$RMG1_ID" --json | jq -r '.id')

run_otdfctl_rm list
assert_success
assert_output --partial "$RM1_ID"
Expand All @@ -138,6 +142,9 @@ teardown_file() {
found_rm=$(echo "$output" | jq -c --arg id "$RM1_ID" '.resource_mappings as $a | ($a | map(.id) | index($id)) as $i | $a[$i]')
assert_equal "$(echo "$found_rm" | jq -r '.id')" "$RM1_ID"
assert_equal "$(echo "$found_rm" | jq -r '.attribute_value.id')" "$RM_VAL1_ID"
# a grouped mapping carries its owning namespace
found_grouped=$(echo "$output" | jq -c --arg id "$GROUPED_RM_ID" '.resource_mappings[] | select(.id == $id)')
assert_equal "$(echo "$found_grouped" | jq -r '.namespace.id')" "$NS_ID"
[[ "$(echo "$output" | jq -r '.pagination.total')" -ge 1 ]]
assert_equal "$(echo "$output" | jq -r '.pagination.current_offset')" "null"
assert_equal "$(echo "$output" | jq -r '.pagination.next_offset')" "null"
Expand Down
8 changes: 4 additions & 4 deletions otdfctl/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@ require (
github.com/opentdf/platform/lib/flattening v0.1.3
github.com/opentdf/platform/lib/identifier v0.4.0
github.com/opentdf/platform/lib/ocrypto v0.12.0
github.com/opentdf/platform/protocol/go v0.32.0
github.com/opentdf/platform/sdk v0.21.0
github.com/opentdf/platform/protocol/go v0.34.0
github.com/opentdf/platform/sdk v0.22.0
github.com/spf13/cobra v1.10.2
github.com/stretchr/testify v1.11.1
github.com/zitadel/oidc/v3 v3.45.1
golang.org/x/oauth2 v0.36.0
golang.org/x/term v0.43.0
google.golang.org/grpc v1.81.0
google.golang.org/grpc v1.81.1
google.golang.org/protobuf v1.36.11
)

require (
al.essio.dev/pkg/shellescape v1.5.1 // indirect
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250613105001-9f2d3c737feb.1 // indirect
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect
Comment thread
coderabbitai[bot] marked this conversation as resolved.
connectrpc.com/connect v1.20.0 // indirect
github.com/BurntSushi/toml v0.3.1 // indirect
github.com/Masterminds/semver/v3 v3.5.0 // indirect
Expand Down
16 changes: 8 additions & 8 deletions otdfctl/go.sum
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
al.essio.dev/pkg/shellescape v1.5.1 h1:86HrALUujYS/h+GtqoB26SBEdkWfmMI6FubjXlsXyho=
al.essio.dev/pkg/shellescape v1.5.1/go.mod h1:6sIqp7X2P6mThCQ7twERpZTuigpr6KbZWtls1U8I890=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250613105001-9f2d3c737feb.1 h1:AUL6VF5YWL01j/1H/DQbPUSDkEwYqwVCNw7yhbpOxSQ=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250613105001-9f2d3c737feb.1/go.mod h1:avRlCjnFzl98VPaeCtJ24RrV/wwHFzB8sWXhj26+n/U=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 h1:s6hzCXtND/ICdGPTMGk7C+/BFlr2Jg5GyH0NKf4XGXg=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM=
connectrpc.com/connect v1.20.0 h1:6TNDAB+WeNd2uolWNlYczB5E0KNNaVMNUEx8JEUsPmQ=
connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4=
connectrpc.com/grpchealth v1.4.0 h1:MJC96JLelARPgZTiRF9KRfY/2N9OcoQvF2EWX07v2IE=
Expand Down Expand Up @@ -182,10 +182,10 @@ github.com/opentdf/platform/lib/identifier v0.4.0 h1:gJf4FqHxqpMdMdMwhI9QmvfHEfM
github.com/opentdf/platform/lib/identifier v0.4.0/go.mod h1:+gONr5mVf1YlLorZUeRefxiudYfC6JeQN7EwrKMk4g8=
github.com/opentdf/platform/lib/ocrypto v0.12.0 h1:N449KWy7VdMO0JwfsrG0kM6Uy8VrEnVvBciwzRHwnlg=
github.com/opentdf/platform/lib/ocrypto v0.12.0/go.mod h1:51UTmAWO6C8ghuMXiktpn63N+fLUQxY6zo8D65Ly0wQ=
github.com/opentdf/platform/protocol/go v0.32.0 h1:XdH/MscjqpESzmfNHSlC3/b84KDRJWrKSoRjbTTfKh4=
github.com/opentdf/platform/protocol/go v0.32.0/go.mod h1:GCiAAv0I8tkQDA2j9FuWzmK78OtIZSl+eAxAf2WHG+4=
github.com/opentdf/platform/sdk v0.21.0 h1:Q+oz/SU4L+ssqeIxkFISFnS4x2GAT03jI1LcLn4eO8k=
github.com/opentdf/platform/sdk v0.21.0/go.mod h1:1LcAnUbgVwJkX+T8hj24bcAQm91pYEbL2EiOdV+fLJ4=
github.com/opentdf/platform/protocol/go v0.34.0 h1:HJstzUyOnbE8c39UIAf3ASkjkkqLEMxy/D0oiUWuzSA=
github.com/opentdf/platform/protocol/go v0.34.0/go.mod h1:6A0vQJ5D4ZTLReWAp8Y/7jTFzlYCmL/IfMJWDHZS6M0=
github.com/opentdf/platform/sdk v0.22.0 h1:IKXm/E9/ZkNnaOZLQEd14VsKy0YhmagwSMFhmt6tja0=
github.com/opentdf/platform/sdk v0.22.0/go.mod h1:gemTuilaIaJ2MKojaiqF1aE1tDLKvt1GgRELM4m8qt4=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
Expand Down Expand Up @@ -311,8 +311,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.81.0 h1:W3G9N3KQf3BU+YuCtGKJk0CmxQNbAISICD/9AORxLIw=
google.golang.org/grpc v1.81.0/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
4 changes: 3 additions & 1 deletion otdfctl/pkg/handlers/resourceMappingGroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ func (h *Handler) GetResourceMappingGroup(ctx context.Context, id string) (*poli
return res.GetResourceMappingGroup(), nil
}

func (h *Handler) ListResourceMappingGroups(ctx context.Context, limit, offset int32) (*resourcemapping.ListResourceMappingGroupsResponse, error) {
func (h *Handler) ListResourceMappingGroups(ctx context.Context, namespaceID, namespaceFqn string, limit, offset int32) (*resourcemapping.ListResourceMappingGroupsResponse, error) {
return h.sdk.ResourceMapping.ListResourceMappingGroups(ctx, &resourcemapping.ListResourceMappingGroupsRequest{
NamespaceId: namespaceID,
NamespaceFqn: namespaceFqn,
Pagination: &policy.PageRequest{
Limit: limit,
Offset: offset,
Expand Down
Loading
Loading