Add filters to listing different resources in the go sdk. (#957)

This commit is contained in:
Todd Knight authored and GitHub committed 2021-02-22 13:31:17 -07:00
1 parent 2ed1643e3a
commit cac1e60e11
13 files changed
+185 -1

No files matched your search

+15
View File
@@ -1,6 +1,8 @@
package accounts
import (
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -18,6 +20,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
}
func getDefaultOptions() options {
@@ -36,6 +39,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
return opts, apiOpts
}
@@ -57,6 +63,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
func WithAttributes(inAttributes map[string]interface{}) Option {
return func(o *options) {
o.postMap["attributes"] = inAttributes
+14
View File
@@ -2,6 +2,7 @@ package authmethods
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package authtokens
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package groups
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package hostcatalogs
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+15
View File
@@ -1,6 +1,8 @@
package hosts
import (
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -18,6 +20,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
}
func getDefaultOptions() options {
@@ -36,6 +39,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
return opts, apiOpts
}
@@ -57,6 +63,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
func WithStaticHostAddress(inAddress string) Option {
return func(o *options) {
raw, ok := o.postMap["attributes"]
+15
View File
@@ -1,6 +1,8 @@
package hostsets
import (
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -18,6 +20,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
}
func getDefaultOptions() options {
@@ -36,6 +39,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
return opts, apiOpts
}
@@ -57,6 +63,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
func WithDescription(inDescription string) Option {
return func(o *options) {
o.postMap["description"] = inDescription
+14
View File
@@ -2,6 +2,7 @@ package roles
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -3,6 +3,7 @@ package scopes
import (
"fmt"
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -21,6 +22,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -40,6 +42,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -64,6 +69,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package sessions
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package targets
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14
View File
@@ -2,6 +2,7 @@ package users
import (
"strconv"
"strings"
"github.com/hashicorp/boundary/api"
)
@@ -20,6 +21,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
withRecursive bool
}
@@ -39,6 +41,9 @@ func getOpts(opt ...Option) (options, []api.Option) {
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
}
@@ -63,6 +68,15 @@ func WithSkipCurlOutput(skip bool) Option {
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
// WithRecursive tells the API to use recursion for listing operations on this
// resource
func WithRecursive(recurse bool) Option {
+14 -1
View File
@@ -657,6 +657,7 @@ type options struct {
queryMap map[string]string
withAutomaticVersioning bool
withSkipCurlOutput bool
withFilter string
{{ if .RecursiveListing }} withRecursive bool {{ end }}
}
@@ -675,7 +676,10 @@ func getOpts(opt ...Option) (options, []api.Option) {
var apiOpts []api.Option
if opts.withSkipCurlOutput {
apiOpts = append(apiOpts, api.WithSkipCurlOutput(true))
} {{ if .RecursiveListing }}
}
if opts.withFilter != "" {
opts.queryMap["filter"] = opts.withFilter
}{{ if .RecursiveListing }}
if opts.withRecursive {
opts.queryMap["recursive"] = strconv.FormatBool(opts.withRecursive)
} {{ end }}
@@ -699,6 +703,15 @@ func WithSkipCurlOutput(skip bool) Option {
o.withSkipCurlOutput = true
}
}
// WithFilter tells the API to filter the items returned using the provided
// filter term. The filter should be in a format supported by
// hashicorp/go-bexpr.
func WithFilter(filter string) Option {
return func(o *options) {
o.withFilter = strings.TrimSpace(filter)
}
}
{{ if .RecursiveListing }}
// WithRecursive tells the API to use recursion for listing operations on this
// resource