feat(billing): Add cli subcommand for monthly active user counts
This commit is contained in:
1 parent
111dc87ead
commit
2e69d59dd2
24 files changed
+791
-73
No files matched your search
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/accounts"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authmethods"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/authtokens"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/billing"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentiallibraries"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentials"
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/credentialstores"
|
||||
@@ -65,6 +66,7 @@ type fieldInfo struct {
|
||||
Query bool
|
||||
SkipDefault bool
|
||||
JsonTags []string // Appended to a field's `json` tag (comma separated)
|
||||
AllowEmpty bool
|
||||
}
|
||||
|
||||
type structInfo struct {
|
||||
@@ -138,6 +140,8 @@ type structInfo struct {
|
||||
// fieldFilter is a set of field names that will not result in generated API
|
||||
// fields
|
||||
fieldFilter []string
|
||||
|
||||
allowEmpty bool
|
||||
}
|
||||
|
||||
var inputStructs = []*structInfo{
|
||||
@@ -224,6 +228,39 @@ var inputStructs = []*structInfo{
|
||||
createResponseTypes: []string{CreateResponseType, ReadResponseType, UpdateResponseType, DeleteResponseType, ListResponseType},
|
||||
recursiveListing: true,
|
||||
},
|
||||
{
|
||||
inProto: &billing.ActiveUsers{},
|
||||
outFile: "billing/active_users.gen.go",
|
||||
templates: []*template.Template{
|
||||
clientTemplate,
|
||||
},
|
||||
fieldOverrides: []fieldInfo{
|
||||
{
|
||||
Name: "Count",
|
||||
ProtoName: "count",
|
||||
FieldType: "uint32",
|
||||
AllowEmpty: true,
|
||||
},
|
||||
},
|
||||
extraFields: []fieldInfo{
|
||||
{
|
||||
Name: "StartTime",
|
||||
ProtoName: "start_time",
|
||||
FieldType: "string",
|
||||
SkipDefault: true,
|
||||
Query: true,
|
||||
},
|
||||
{
|
||||
Name: "EndTime",
|
||||
ProtoName: "end_time",
|
||||
FieldType: "string",
|
||||
SkipDefault: true,
|
||||
Query: true,
|
||||
},
|
||||
},
|
||||
pluralResourceName: "billing",
|
||||
versionEnabled: true,
|
||||
},
|
||||
// User related resources
|
||||
{
|
||||
inProto: &users.Account{},
|
||||
|
||||
@@ -94,6 +94,9 @@ func fillTemplates() {
|
||||
if len(override.JsonTags) != 0 {
|
||||
field.JsonTags = override.JsonTags
|
||||
}
|
||||
if override.AllowEmpty {
|
||||
field.AllowEmpty = true
|
||||
}
|
||||
in.generatedStructure.fields[i] = field
|
||||
}
|
||||
}
|
||||
@@ -715,7 +718,7 @@ import (
|
||||
)
|
||||
|
||||
type {{ .Name }} struct { {{ range .Fields }}
|
||||
{{ .Name }} {{ .FieldType }} `, "`json:\"{{ .ProtoName }}{{ if ( ne ( len ( .JsonTags ) ) 0 ) }},{{ stringsjoin .JsonTags \",\" }}{{ end }},omitempty\"`", `{{ end }}
|
||||
{{ .Name }} {{ .FieldType }} `, "`json:\"{{ .ProtoName }}{{ if ( ne ( len ( .JsonTags ) ) 0 ) }},{{ stringsjoin .JsonTags \",\" }}{{ end }}{{ if ( not .AllowEmpty ) }},omitempty{{ end }}\"`", `{{ end }}
|
||||
{{ if ( not ( eq ( len ( .CreateResponseTypes ) ) 0 ) )}}
|
||||
response *api.Response
|
||||
{{ else if ( eq .Name "Error" ) }}
|
||||
|
||||
Reference in new issue
Block a user