From c2bfcc06646cfa7afa7c2c38309510515bee1bcf Mon Sep 17 00:00:00 2001 From: Damian Debkowski Date: Thu, 21 Jul 2022 15:21:31 -0700 Subject: [PATCH] refactor(api module): enforce typed definitions (#2238) --- CHANGELOG.md | 1 + api/accounts/account.gen.go | 4 +- api/authmethods/authmethods.gen.go | 4 +- api/authtokens/authtokens.gen.go | 4 +- .../credential_library.gen.go | 4 +- api/credentials/credential.gen.go | 4 +- api/credentialstores/credential_store.gen.go | 4 +- api/groups/group.gen.go | 4 +- api/hostcatalogs/host_catalog.gen.go | 4 +- api/hosts/host.gen.go | 4 +- api/hostsets/host_set.gen.go | 4 +- api/managedgroups/managedgroups.gen.go | 4 +- api/roles/role.gen.go | 4 +- api/scopes/scope.gen.go | 4 +- api/sessions/session.gen.go | 4 +- api/targets/target.gen.go | 4 +- api/users/user.gen.go | 4 +- api/util.go | 15 ------ api/workers/worker.gen.go | 4 +- internal/api/genapi/templates.go | 4 +- internal/auth/additional_verification_test.go | 4 +- internal/cmd/base/format.go | 6 +-- .../cmd/commands/accountscmd/accounts.gen.go | 37 +++++++++----- internal/cmd/commands/accountscmd/funcs.go | 13 ++--- .../commands/accountscmd/oidc_accounts.gen.go | 25 +++++++--- .../accountscmd/password_accounts.gen.go | 25 +++++++--- internal/cmd/commands/authenticate/funcs.go | 5 +- .../cmd/commands/authenticate/password.go | 15 ------ .../authmethodscmd/authmethods.gen.go | 37 +++++++++----- internal/cmd/commands/authmethodscmd/funcs.go | 7 ++- .../authmethodscmd/oidc_authmethods.gen.go | 25 +++++++--- .../cmd/commands/authmethodscmd/oidc_funcs.go | 7 +-- .../password_authmethods.gen.go | 25 +++++++--- .../commands/authtokenscmd/authtokens.gen.go | 37 +++++++++----- internal/cmd/commands/authtokenscmd/funcs.go | 3 +- .../credentiallibraries.gen.go | 37 +++++++++----- .../commands/credentiallibrariescmd/funcs.go | 3 +- .../vault_credentiallibraries.gen.go | 25 +++++++--- .../credentialscmd/credentials.gen.go | 37 +++++++++----- internal/cmd/commands/credentialscmd/funcs.go | 3 +- .../ssh-private-key_credentials.gen.go | 25 +++++++--- .../username-password_credentials.gen.go | 25 +++++++--- .../credentialstores.gen.go | 37 +++++++++----- .../cmd/commands/credentialstorescmd/funcs.go | 3 +- .../static_credentialstores.gen.go | 25 +++++++--- .../vault_credentialstores.gen.go | 25 +++++++--- internal/cmd/commands/groupscmd/funcs.go | 16 +++--- internal/cmd/commands/groupscmd/groups.gen.go | 49 +++++++++++++------ .../cmd/commands/hostcatalogscmd/funcs.go | 3 +- .../hostcatalogscmd/hostcatalogs.gen.go | 37 +++++++++----- .../plugin_hostcatalogs.gen.go | 25 +++++++--- .../static_hostcatalogs.gen.go | 25 +++++++--- internal/cmd/commands/hostscmd/funcs.go | 3 +- internal/cmd/commands/hostscmd/hosts.gen.go | 37 +++++++++----- .../cmd/commands/hostscmd/static_hosts.gen.go | 25 +++++++--- internal/cmd/commands/hostsetscmd/funcs.go | 16 +++--- .../cmd/commands/hostsetscmd/hostsets.gen.go | 37 +++++++++----- .../hostsetscmd/plugin_hostsets.gen.go | 25 +++++++--- .../hostsetscmd/static_hostsets.gen.go | 25 +++++++--- .../cmd/commands/managedgroupscmd/funcs.go | 3 +- .../managedgroupscmd/managedgroups.gen.go | 37 +++++++++----- .../oidc_managedgroups.gen.go | 25 +++++++--- internal/cmd/commands/rolescmd/funcs.go | 25 ++++++---- internal/cmd/commands/rolescmd/roles.gen.go | 49 +++++++++++++------ internal/cmd/commands/scopescmd/funcs.go | 3 +- internal/cmd/commands/scopescmd/scopes.gen.go | 49 +++++++++++++------ internal/cmd/commands/sessionscmd/funcs.go | 10 ++-- .../cmd/commands/sessionscmd/sessions.gen.go | 30 +++++++----- internal/cmd/commands/targetscmd/funcs.go | 48 ++++++++++-------- .../cmd/commands/targetscmd/targets.gen.go | 37 +++++++++----- .../commands/targetscmd/tcp_targets.gen.go | 25 +++++++--- internal/cmd/commands/userscmd/funcs.go | 16 +++--- internal/cmd/commands/userscmd/users.gen.go | 49 +++++++++++++------ internal/cmd/commands/workerscmd/funcs.go | 5 +- .../commands/workerscmd/worker-led_funcs.go | 7 +-- .../workerscmd/worker-led_workers.gen.go | 13 ++--- .../cmd/commands/workerscmd/workers.gen.go | 43 ++++++++++------ internal/cmd/gencli/templates.go | 46 +++++++++++------ .../cluster/recursive_anon_listing_test.go | 10 ++-- 79 files changed, 906 insertions(+), 551 deletions(-) delete mode 100644 api/util.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 777b5624b..48c56be82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Canonical reference for changes, improvements, and bugfixes for Boundary. ### Deprecations/Changes +* API Module: Changed the return types that reference interfaces into their expected typed definition. Type casting is only allowed against interface types, therefore to mitigate compiler errors please remove any type casting done against the return values. ([Issue](https://github.com/hashicorp/boundary/issues/2122), [PR](https://github.com/hashicorp/boundary/pull/2238)) * Targets: Rename Application credentials to Brokered credentials ([PR](https://github.com/hashicorp/boundary/pull/2260)). * Host plugins: Plugin-type host catalogs/sets/hosts now use typed prefixes for diff --git a/api/accounts/account.gen.go b/api/accounts/account.gen.go index c68b601a0..d28fcc2d4 100644 --- a/api/accounts/account.gen.go +++ b/api/accounts/account.gen.go @@ -34,7 +34,7 @@ type AccountReadResult struct { response *api.Response } -func (n AccountReadResult) GetItem() interface{} { +func (n AccountReadResult) GetItem() *Account { return n.Item } @@ -63,7 +63,7 @@ type AccountListResult struct { response *api.Response } -func (n AccountListResult) GetItems() interface{} { +func (n AccountListResult) GetItems() []*Account { return n.Items } diff --git a/api/authmethods/authmethods.gen.go b/api/authmethods/authmethods.gen.go index c73bd9fd5..580ce8722 100644 --- a/api/authmethods/authmethods.gen.go +++ b/api/authmethods/authmethods.gen.go @@ -35,7 +35,7 @@ type AuthMethodReadResult struct { response *api.Response } -func (n AuthMethodReadResult) GetItem() interface{} { +func (n AuthMethodReadResult) GetItem() *AuthMethod { return n.Item } @@ -64,7 +64,7 @@ type AuthMethodListResult struct { response *api.Response } -func (n AuthMethodListResult) GetItems() interface{} { +func (n AuthMethodListResult) GetItems() []*AuthMethod { return n.Items } diff --git a/api/authtokens/authtokens.gen.go b/api/authtokens/authtokens.gen.go index 0c12a9f41..b2c52714e 100644 --- a/api/authtokens/authtokens.gen.go +++ b/api/authtokens/authtokens.gen.go @@ -33,7 +33,7 @@ type AuthTokenReadResult struct { response *api.Response } -func (n AuthTokenReadResult) GetItem() interface{} { +func (n AuthTokenReadResult) GetItem() *AuthToken { return n.Item } @@ -62,7 +62,7 @@ type AuthTokenListResult struct { response *api.Response } -func (n AuthTokenListResult) GetItems() interface{} { +func (n AuthTokenListResult) GetItems() []*AuthToken { return n.Items } diff --git a/api/credentiallibraries/credential_library.gen.go b/api/credentiallibraries/credential_library.gen.go index b51575e5f..4eb7d8cee 100644 --- a/api/credentiallibraries/credential_library.gen.go +++ b/api/credentiallibraries/credential_library.gen.go @@ -35,7 +35,7 @@ type CredentialLibraryReadResult struct { response *api.Response } -func (n CredentialLibraryReadResult) GetItem() interface{} { +func (n CredentialLibraryReadResult) GetItem() *CredentialLibrary { return n.Item } @@ -64,7 +64,7 @@ type CredentialLibraryListResult struct { response *api.Response } -func (n CredentialLibraryListResult) GetItems() interface{} { +func (n CredentialLibraryListResult) GetItems() []*CredentialLibrary { return n.Items } diff --git a/api/credentials/credential.gen.go b/api/credentials/credential.gen.go index 30bcd3657..2e6c77d22 100644 --- a/api/credentials/credential.gen.go +++ b/api/credentials/credential.gen.go @@ -33,7 +33,7 @@ type CredentialReadResult struct { response *api.Response } -func (n CredentialReadResult) GetItem() interface{} { +func (n CredentialReadResult) GetItem() *Credential { return n.Item } @@ -62,7 +62,7 @@ type CredentialListResult struct { response *api.Response } -func (n CredentialListResult) GetItems() interface{} { +func (n CredentialListResult) GetItems() []*Credential { return n.Items } diff --git a/api/credentialstores/credential_store.gen.go b/api/credentialstores/credential_store.gen.go index 879e10f15..ffbe958e5 100644 --- a/api/credentialstores/credential_store.gen.go +++ b/api/credentialstores/credential_store.gen.go @@ -34,7 +34,7 @@ type CredentialStoreReadResult struct { response *api.Response } -func (n CredentialStoreReadResult) GetItem() interface{} { +func (n CredentialStoreReadResult) GetItem() *CredentialStore { return n.Item } @@ -63,7 +63,7 @@ type CredentialStoreListResult struct { response *api.Response } -func (n CredentialStoreListResult) GetItems() interface{} { +func (n CredentialStoreListResult) GetItems() []*CredentialStore { return n.Items } diff --git a/api/groups/group.gen.go b/api/groups/group.gen.go index 02b99173b..706aee997 100644 --- a/api/groups/group.gen.go +++ b/api/groups/group.gen.go @@ -33,7 +33,7 @@ type GroupReadResult struct { response *api.Response } -func (n GroupReadResult) GetItem() interface{} { +func (n GroupReadResult) GetItem() *Group { return n.Item } @@ -62,7 +62,7 @@ type GroupListResult struct { response *api.Response } -func (n GroupListResult) GetItems() interface{} { +func (n GroupListResult) GetItems() []*Group { return n.Items } diff --git a/api/hostcatalogs/host_catalog.gen.go b/api/hostcatalogs/host_catalog.gen.go index f2e77e0b7..48afd83e0 100644 --- a/api/hostcatalogs/host_catalog.gen.go +++ b/api/hostcatalogs/host_catalog.gen.go @@ -39,7 +39,7 @@ type HostCatalogReadResult struct { response *api.Response } -func (n HostCatalogReadResult) GetItem() interface{} { +func (n HostCatalogReadResult) GetItem() *HostCatalog { return n.Item } @@ -68,7 +68,7 @@ type HostCatalogListResult struct { response *api.Response } -func (n HostCatalogListResult) GetItems() interface{} { +func (n HostCatalogListResult) GetItems() []*HostCatalog { return n.Items } diff --git a/api/hosts/host.gen.go b/api/hosts/host.gen.go index ca6318f78..b959f5df0 100644 --- a/api/hosts/host.gen.go +++ b/api/hosts/host.gen.go @@ -39,7 +39,7 @@ type HostReadResult struct { response *api.Response } -func (n HostReadResult) GetItem() interface{} { +func (n HostReadResult) GetItem() *Host { return n.Item } @@ -68,7 +68,7 @@ type HostListResult struct { response *api.Response } -func (n HostListResult) GetItems() interface{} { +func (n HostListResult) GetItems() []*Host { return n.Items } diff --git a/api/hostsets/host_set.gen.go b/api/hostsets/host_set.gen.go index 13d6894bf..80e214e0d 100644 --- a/api/hostsets/host_set.gen.go +++ b/api/hostsets/host_set.gen.go @@ -38,7 +38,7 @@ type HostSetReadResult struct { response *api.Response } -func (n HostSetReadResult) GetItem() interface{} { +func (n HostSetReadResult) GetItem() *HostSet { return n.Item } @@ -67,7 +67,7 @@ type HostSetListResult struct { response *api.Response } -func (n HostSetListResult) GetItems() interface{} { +func (n HostSetListResult) GetItems() []*HostSet { return n.Items } diff --git a/api/managedgroups/managedgroups.gen.go b/api/managedgroups/managedgroups.gen.go index a8e941984..ce767f589 100644 --- a/api/managedgroups/managedgroups.gen.go +++ b/api/managedgroups/managedgroups.gen.go @@ -34,7 +34,7 @@ type ManagedGroupReadResult struct { response *api.Response } -func (n ManagedGroupReadResult) GetItem() interface{} { +func (n ManagedGroupReadResult) GetItem() *ManagedGroup { return n.Item } @@ -63,7 +63,7 @@ type ManagedGroupListResult struct { response *api.Response } -func (n ManagedGroupListResult) GetItems() interface{} { +func (n ManagedGroupListResult) GetItems() []*ManagedGroup { return n.Items } diff --git a/api/roles/role.gen.go b/api/roles/role.gen.go index a679e130b..ec9d1120f 100644 --- a/api/roles/role.gen.go +++ b/api/roles/role.gen.go @@ -36,7 +36,7 @@ type RoleReadResult struct { response *api.Response } -func (n RoleReadResult) GetItem() interface{} { +func (n RoleReadResult) GetItem() *Role { return n.Item } @@ -65,7 +65,7 @@ type RoleListResult struct { response *api.Response } -func (n RoleListResult) GetItems() interface{} { +func (n RoleListResult) GetItems() []*Role { return n.Items } diff --git a/api/scopes/scope.gen.go b/api/scopes/scope.gen.go index 1c40a5689..bb1606a02 100644 --- a/api/scopes/scope.gen.go +++ b/api/scopes/scope.gen.go @@ -33,7 +33,7 @@ type ScopeReadResult struct { response *api.Response } -func (n ScopeReadResult) GetItem() interface{} { +func (n ScopeReadResult) GetItem() *Scope { return n.Item } @@ -62,7 +62,7 @@ type ScopeListResult struct { response *api.Response } -func (n ScopeListResult) GetItems() interface{} { +func (n ScopeListResult) GetItems() []*Scope { return n.Items } diff --git a/api/sessions/session.gen.go b/api/sessions/session.gen.go index 301ff994f..092030541 100644 --- a/api/sessions/session.gen.go +++ b/api/sessions/session.gen.go @@ -41,7 +41,7 @@ type SessionReadResult struct { response *api.Response } -func (n SessionReadResult) GetItem() interface{} { +func (n SessionReadResult) GetItem() *Session { return n.Item } @@ -70,7 +70,7 @@ type SessionListResult struct { response *api.Response } -func (n SessionListResult) GetItems() interface{} { +func (n SessionListResult) GetItems() []*Session { return n.Items } diff --git a/api/targets/target.gen.go b/api/targets/target.gen.go index d427beb50..dd47f87dd 100644 --- a/api/targets/target.gen.go +++ b/api/targets/target.gen.go @@ -46,7 +46,7 @@ type TargetReadResult struct { response *api.Response } -func (n TargetReadResult) GetItem() interface{} { +func (n TargetReadResult) GetItem() *Target { return n.Item } @@ -75,7 +75,7 @@ type TargetListResult struct { response *api.Response } -func (n TargetListResult) GetItems() interface{} { +func (n TargetListResult) GetItems() []*Target { return n.Items } diff --git a/api/users/user.gen.go b/api/users/user.gen.go index 36c6d977f..6c315add6 100644 --- a/api/users/user.gen.go +++ b/api/users/user.gen.go @@ -37,7 +37,7 @@ type UserReadResult struct { response *api.Response } -func (n UserReadResult) GetItem() interface{} { +func (n UserReadResult) GetItem() *User { return n.Item } @@ -66,7 +66,7 @@ type UserListResult struct { response *api.Response } -func (n UserListResult) GetItems() interface{} { +func (n UserListResult) GetItems() []*User { return n.Items } diff --git a/api/util.go b/api/util.go deleted file mode 100644 index 67669db03..000000000 --- a/api/util.go +++ /dev/null @@ -1,15 +0,0 @@ -package api - -type GenericResult interface { - GetItem() interface{} - GetResponse() *Response -} - -type GenericDeleteResult interface { - GetResponse() *Response -} - -type GenericListResult interface { - GetItems() interface{} - GetResponse() *Response -} diff --git a/api/workers/worker.gen.go b/api/workers/worker.gen.go index 4beedca59..042234893 100644 --- a/api/workers/worker.gen.go +++ b/api/workers/worker.gen.go @@ -39,7 +39,7 @@ type WorkerReadResult struct { response *api.Response } -func (n WorkerReadResult) GetItem() interface{} { +func (n WorkerReadResult) GetItem() *Worker { return n.Item } @@ -68,7 +68,7 @@ type WorkerListResult struct { response *api.Response } -func (n WorkerListResult) GetItems() interface{} { +func (n WorkerListResult) GetItems() []*Worker { return n.Items } diff --git a/internal/api/genapi/templates.go b/internal/api/genapi/templates.go index 0fce42d72..189d79eeb 100644 --- a/internal/api/genapi/templates.go +++ b/internal/api/genapi/templates.go @@ -599,7 +599,7 @@ type {{ .Name }}ReadResult struct { response *api.Response } -func (n {{ .Name }}ReadResult) GetItem() interface{} { +func (n {{ .Name }}ReadResult) GetItem() *{{ .Name }} { return n.Item } @@ -628,7 +628,7 @@ type {{ .Name }}ListResult struct { response *api.Response } -func (n {{ .Name }}ListResult) GetItems() interface{} { +func (n {{ .Name }}ListResult) GetItems() []*{{ .Name }} { return n.Items } diff --git a/internal/auth/additional_verification_test.go b/internal/auth/additional_verification_test.go index 17763e75a..c871b71d1 100644 --- a/internal/auth/additional_verification_test.go +++ b/internal/auth/additional_verification_test.go @@ -158,7 +158,7 @@ func TestRecursiveListingDifferentOutputFields(t *testing.T) { require.NoError(err) require.NotNil(resp) require.NotNil(resp.GetItems()) - assert.Len(resp.GetItems().([]*authmethods.AuthMethod), 3) + assert.Len(resp.GetItems(), 3) items := resp.GetResponse().Map["items"].([]interface{}) require.NotNil(items) @@ -199,7 +199,7 @@ func TestRecursiveListingDifferentOutputFields(t *testing.T) { require.NoError(err) require.NotNil(resp) require.NotNil(resp.GetItems()) - assert.Len(resp.GetItems().([]*authmethods.AuthMethod), 1) + assert.Len(resp.GetItems(), 1) item := resp.GetResponse().Map["items"].([]interface{})[0].(map[string]interface{}) assert.NotContains(item, "created_time") assert.NotContains(item, "attributes") diff --git a/internal/cmd/base/format.go b/internal/cmd/base/format.go index 792dde95a..89579b06b 100644 --- a/internal/cmd/base/format.go +++ b/internal/cmd/base/format.go @@ -277,8 +277,7 @@ func (c *Command) PrintCliError(err error) { } // PrintJsonItem prints the given item to the UI in JSON format -func (c *Command) PrintJsonItem(result api.GenericResult, opt ...Option) bool { - resp := result.GetResponse() +func (c *Command) PrintJsonItem(resp *api.Response, opt ...Option) bool { if resp == nil { c.PrintCliError(errors.New("Error formatting as JSON: no response given to item formatter")) return false @@ -309,8 +308,7 @@ func (c *Command) PrintJson(input json.RawMessage, opt ...Option) bool { } // PrintJsonItems prints the given items to the UI in JSON format -func (c *Command) PrintJsonItems(result api.GenericListResult) bool { - resp := result.GetResponse() +func (c *Command) PrintJsonItems(resp *api.Response) bool { if resp == nil { c.PrintCliError(errors.New("Error formatting as JSON: no response given to items formatter")) return false diff --git a/internal/cmd/commands/accountscmd/accounts.gen.go b/internal/cmd/commands/accountscmd/accounts.gen.go index c350ab2cd..20d9167aa 100644 --- a/internal/cmd/commands/accountscmd/accounts.gen.go +++ b/internal/cmd/commands/accountscmd/accounts.gen.go @@ -217,24 +217,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *accounts.Account - var listResult api.GenericListResult + var items []*accounts.Account + + var readResult *accounts.AccountReadResult + + var deleteResult *accounts.AccountDeleteResult + + var listResult *accounts.AccountListResult switch c.Func { case "read": - result, err = accountsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = accountsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = accountsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = accountsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = accountsClient.List(c.Context, c.FlagAuthMethodId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, accountsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, accountsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -261,7 +273,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -274,13 +286,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*accounts.Account) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -289,10 +300,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -307,8 +318,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]accounts.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *accounts.Account, inItems []*accounts.Account, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (*api.Response, *accounts.Account, []*accounts.Account, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/accountscmd/funcs.go b/internal/cmd/commands/accountscmd/funcs.go index 9ce869196..b9c300547 100644 --- a/internal/cmd/commands/accountscmd/funcs.go +++ b/internal/cmd/commands/accountscmd/funcs.go @@ -174,14 +174,16 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]accounts.O return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, accountClient *accounts.Client, version uint32, opts []accounts.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *accounts.Account, origItems []*accounts.Account, origError error, accountClient *accounts.Client, version uint32, opts []accounts.Option) (*api.Response, *accounts.Account, []*accounts.Account, error) { switch c.Func { case "set-password": - return accountClient.SetPassword(c.Context, c.FlagId, c.flagPassword, version, opts...) + result, err := accountClient.SetPassword(c.Context, c.FlagId, c.flagPassword, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "change-password": - return accountClient.ChangePassword(c.Context, c.FlagId, c.flagCurrentPassword, c.flagNewPassword, version, opts...) + result, err := accountClient.ChangePassword(c.Context, c.FlagId, c.flagCurrentPassword, c.flagNewPassword, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*accounts.Account) string { @@ -237,8 +239,7 @@ func (c *Command) printListTable(items []*accounts.Account) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*accounts.Account) +func printItemTable(item *accounts.Account, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/accountscmd/oidc_accounts.gen.go b/internal/cmd/commands/accountscmd/oidc_accounts.gen.go index c4888ea66..ce2af86d3 100644 --- a/internal/cmd/commands/accountscmd/oidc_accounts.gen.go +++ b/internal/cmd/commands/accountscmd/oidc_accounts.gen.go @@ -193,19 +193,28 @@ func (c *OidcCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *accounts.Account + + var createResult *accounts.AccountCreateResult + + var updateResult *accounts.AccountUpdateResult switch c.Func { case "create": - result, err = accountsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + createResult, err = accountsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = accountsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = accountsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraOidcActions(c, result, err, accountsClient, version, opts) + resp, item, err = executeExtraOidcActions(c, resp, item, err, accountsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -233,10 +242,10 @@ func (c *OidcCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -249,8 +258,8 @@ var ( extraOidcSynopsisFunc = func(*OidcCommand) string { return "" } extraOidcFlagsFunc = func(*OidcCommand, *base.FlagSets, *base.FlagSet) {} extraOidcFlagsHandlingFunc = func(*OidcCommand, *base.FlagSets, *[]accounts.Option) bool { return true } - executeExtraOidcActions = func(_ *OidcCommand, inResult api.GenericResult, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraOidcActions = func(_ *OidcCommand, inResp *api.Response, inItem *accounts.Account, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (*api.Response, *accounts.Account, error) { + return inResp, inItem, inErr } printCustomOidcActionOutput = func(*OidcCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/accountscmd/password_accounts.gen.go b/internal/cmd/commands/accountscmd/password_accounts.gen.go index 7ee2b2873..a60c974eb 100644 --- a/internal/cmd/commands/accountscmd/password_accounts.gen.go +++ b/internal/cmd/commands/accountscmd/password_accounts.gen.go @@ -193,19 +193,28 @@ func (c *PasswordCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *accounts.Account + + var createResult *accounts.AccountCreateResult + + var updateResult *accounts.AccountUpdateResult switch c.Func { case "create": - result, err = accountsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + createResult, err = accountsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = accountsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = accountsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraPasswordActions(c, result, err, accountsClient, version, opts) + resp, item, err = executeExtraPasswordActions(c, resp, item, err, accountsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -233,10 +242,10 @@ func (c *PasswordCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -249,8 +258,8 @@ var ( extraPasswordSynopsisFunc = func(*PasswordCommand) string { return "" } extraPasswordFlagsFunc = func(*PasswordCommand, *base.FlagSets, *base.FlagSet) {} extraPasswordFlagsHandlingFunc = func(*PasswordCommand, *base.FlagSets, *[]accounts.Option) bool { return true } - executeExtraPasswordActions = func(_ *PasswordCommand, inResult api.GenericResult, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraPasswordActions = func(_ *PasswordCommand, inResp *api.Response, inItem *accounts.Account, inErr error, _ *accounts.Client, _ uint32, _ []accounts.Option) (*api.Response, *accounts.Account, error) { + return inResp, inItem, inErr } printCustomPasswordActionOutput = func(*PasswordCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/authenticate/funcs.go b/internal/cmd/commands/authenticate/funcs.go index 4dcf15cbd..d1f8c890e 100644 --- a/internal/cmd/commands/authenticate/funcs.go +++ b/internal/cmd/commands/authenticate/funcs.go @@ -32,10 +32,7 @@ func saveAndOrPrintToken(c *base.Command, result *authmethods.AuthenticateResult })) case "json": - if ok := c.PrintJsonItem(&dummyGenericResponse{ - item: token, - response: result.GetResponse(), - }); !ok { + if ok := c.PrintJsonItem(result.GetResponse()); !ok { return base.CommandCliError } return base.CommandSuccess diff --git a/internal/cmd/commands/authenticate/password.go b/internal/cmd/commands/authenticate/password.go index b12e4b876..6e14b07cd 100644 --- a/internal/cmd/commands/authenticate/password.go +++ b/internal/cmd/commands/authenticate/password.go @@ -84,21 +84,6 @@ func (c *PasswordCommand) AutocompleteFlags() complete.Flags { return c.Flags().Completions() } -type dummyGenericResponse struct { - item interface{} - response *api.Response -} - -var _ api.GenericResult = (*dummyGenericResponse)(nil) - -func (d *dummyGenericResponse) GetItem() interface{} { - return d.item -} - -func (d *dummyGenericResponse) GetResponse() *api.Response { - return d.response -} - func (c *PasswordCommand) Run(args []string) int { f := c.Flags() diff --git a/internal/cmd/commands/authmethodscmd/authmethods.gen.go b/internal/cmd/commands/authmethodscmd/authmethods.gen.go index 6eec33d34..2a75631b1 100644 --- a/internal/cmd/commands/authmethodscmd/authmethods.gen.go +++ b/internal/cmd/commands/authmethodscmd/authmethods.gen.go @@ -184,24 +184,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *authmethods.AuthMethod - var listResult api.GenericListResult + var items []*authmethods.AuthMethod + + var readResult *authmethods.AuthMethodReadResult + + var deleteResult *authmethods.AuthMethodDeleteResult + + var listResult *authmethods.AuthMethodListResult switch c.Func { case "read": - result, err = authmethodsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = authmethodsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = authmethodsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = authmethodsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = authmethodsClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, authmethodsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, authmethodsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -228,7 +240,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -241,13 +253,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*authmethods.AuthMethod) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -256,10 +267,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -274,8 +285,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]authmethods.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *authmethods.AuthMethod, inItems []*authmethods.AuthMethod, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (*api.Response, *authmethods.AuthMethod, []*authmethods.AuthMethod, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/authmethodscmd/funcs.go b/internal/cmd/commands/authmethodscmd/funcs.go index 7ed22b1d0..8cfdf9cb2 100644 --- a/internal/cmd/commands/authmethodscmd/funcs.go +++ b/internal/cmd/commands/authmethodscmd/funcs.go @@ -133,8 +133,7 @@ func (c *Command) printListTable(items []*authmethods.AuthMethod) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*authmethods.AuthMethod) +func printItemTable(item *authmethods.AuthMethod, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id @@ -157,8 +156,8 @@ func printItemTable(result api.GenericResult) string { if item.Description != "" { nonAttributeMap["Description"] = item.Description } - if result.GetResponse() != nil && result.GetResponse().Map != nil { - if result.GetResponse().Map[globals.IsPrimaryField] != nil { + if resp != nil && resp.Map != nil { + if resp.Map[globals.IsPrimaryField] != nil { nonAttributeMap["Is Primary For Scope"] = item.IsPrimary } } diff --git a/internal/cmd/commands/authmethodscmd/oidc_authmethods.gen.go b/internal/cmd/commands/authmethodscmd/oidc_authmethods.gen.go index 87ac29641..a7f1f36d1 100644 --- a/internal/cmd/commands/authmethodscmd/oidc_authmethods.gen.go +++ b/internal/cmd/commands/authmethodscmd/oidc_authmethods.gen.go @@ -206,19 +206,28 @@ func (c *OidcCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *authmethods.AuthMethod + + var createResult *authmethods.AuthMethodCreateResult + + var updateResult *authmethods.AuthMethodUpdateResult switch c.Func { case "create": - result, err = authmethodsClient.Create(c.Context, "oidc", c.FlagScopeId, opts...) + createResult, err = authmethodsClient.Create(c.Context, "oidc", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = authmethodsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = authmethodsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraOidcActions(c, result, err, authmethodsClient, version, opts) + resp, item, err = executeExtraOidcActions(c, resp, item, err, authmethodsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -246,10 +255,10 @@ func (c *OidcCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -262,8 +271,8 @@ var ( extraOidcSynopsisFunc = func(*OidcCommand) string { return "" } extraOidcFlagsFunc = func(*OidcCommand, *base.FlagSets, *base.FlagSet) {} extraOidcFlagsHandlingFunc = func(*OidcCommand, *base.FlagSets, *[]authmethods.Option) bool { return true } - executeExtraOidcActions = func(_ *OidcCommand, inResult api.GenericResult, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraOidcActions = func(_ *OidcCommand, inResp *api.Response, inItem *authmethods.AuthMethod, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (*api.Response, *authmethods.AuthMethod, error) { + return inResp, inItem, inErr } printCustomOidcActionOutput = func(*OidcCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/authmethodscmd/oidc_funcs.go b/internal/cmd/commands/authmethodscmd/oidc_funcs.go index c1c842fe9..e998188b0 100644 --- a/internal/cmd/commands/authmethodscmd/oidc_funcs.go +++ b/internal/cmd/commands/authmethodscmd/oidc_funcs.go @@ -284,13 +284,14 @@ func extraOidcFlagHandlingFuncImpl(c *OidcCommand, f *base.FlagSets, opts *[]aut return true } -func executeExtraOidcActionsImpl(c *OidcCommand, origResult api.GenericResult, origError error, amClient *authmethods.Client, version uint32, opts []authmethods.Option) (api.GenericResult, error) { +func executeExtraOidcActionsImpl(c *OidcCommand, origResp *api.Response, origItem *authmethods.AuthMethod, origError error, amClient *authmethods.Client, version uint32, opts []authmethods.Option) (*api.Response, *authmethods.AuthMethod, error) { switch c.Func { case "change-state": if c.flagDisableDiscoveredConfigValidation { opts = append(opts, authmethods.WithOidcAuthMethodDisableDiscoveredConfigValidation(true)) } - return amClient.ChangeState(c.Context, c.FlagId, version, c.flagState, opts...) + result, err := amClient.ChangeState(c.Context, c.FlagId, version, c.flagState, opts...) + return result.GetResponse(), result.GetItem(), err } - return origResult, origError + return origResp, origItem, origError } diff --git a/internal/cmd/commands/authmethodscmd/password_authmethods.gen.go b/internal/cmd/commands/authmethodscmd/password_authmethods.gen.go index 92e802410..46c54d259 100644 --- a/internal/cmd/commands/authmethodscmd/password_authmethods.gen.go +++ b/internal/cmd/commands/authmethodscmd/password_authmethods.gen.go @@ -198,19 +198,28 @@ func (c *PasswordCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *authmethods.AuthMethod + + var createResult *authmethods.AuthMethodCreateResult + + var updateResult *authmethods.AuthMethodUpdateResult switch c.Func { case "create": - result, err = authmethodsClient.Create(c.Context, "password", c.FlagScopeId, opts...) + createResult, err = authmethodsClient.Create(c.Context, "password", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = authmethodsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = authmethodsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraPasswordActions(c, result, err, authmethodsClient, version, opts) + resp, item, err = executeExtraPasswordActions(c, resp, item, err, authmethodsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -238,10 +247,10 @@ func (c *PasswordCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -254,8 +263,8 @@ var ( extraPasswordSynopsisFunc = func(*PasswordCommand) string { return "" } extraPasswordFlagsFunc = func(*PasswordCommand, *base.FlagSets, *base.FlagSet) {} extraPasswordFlagsHandlingFunc = func(*PasswordCommand, *base.FlagSets, *[]authmethods.Option) bool { return true } - executeExtraPasswordActions = func(_ *PasswordCommand, inResult api.GenericResult, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraPasswordActions = func(_ *PasswordCommand, inResp *api.Response, inItem *authmethods.AuthMethod, inErr error, _ *authmethods.Client, _ uint32, _ []authmethods.Option) (*api.Response, *authmethods.AuthMethod, error) { + return inResp, inItem, inErr } printCustomPasswordActionOutput = func(*PasswordCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/authtokenscmd/authtokens.gen.go b/internal/cmd/commands/authtokenscmd/authtokens.gen.go index e7454237a..228c0b53b 100644 --- a/internal/cmd/commands/authtokenscmd/authtokens.gen.go +++ b/internal/cmd/commands/authtokenscmd/authtokens.gen.go @@ -179,24 +179,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *authtokens.AuthToken - var listResult api.GenericListResult + var items []*authtokens.AuthToken + + var readResult *authtokens.AuthTokenReadResult + + var deleteResult *authtokens.AuthTokenDeleteResult + + var listResult *authtokens.AuthTokenListResult switch c.Func { case "read": - result, err = authtokensClient.Read(c.Context, c.FlagId, opts...) + readResult, err = authtokensClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = authtokensClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = authtokensClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = authtokensClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, authtokensClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, authtokensClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -223,7 +235,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -236,13 +248,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*authtokens.AuthToken) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -251,10 +262,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -269,8 +280,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]authtokens.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *authtokens.Client, _ uint32, _ []authtokens.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *authtokens.AuthToken, inItems []*authtokens.AuthToken, inErr error, _ *authtokens.Client, _ uint32, _ []authtokens.Option) (*api.Response, *authtokens.AuthToken, []*authtokens.AuthToken, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/authtokenscmd/funcs.go b/internal/cmd/commands/authtokenscmd/funcs.go index 1777fd314..a3caba2d8 100644 --- a/internal/cmd/commands/authtokenscmd/funcs.go +++ b/internal/cmd/commands/authtokenscmd/funcs.go @@ -121,8 +121,7 @@ func (c *Command) printListTable(items []*authtokens.AuthToken) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*authtokens.AuthToken) +func printItemTable(item *authtokens.AuthToken, resp *api.Response) string { nonAttributeMap := map[string]interface{}{ "ID": item.Id, "Auth Method ID": item.AuthMethodId, diff --git a/internal/cmd/commands/credentiallibrariescmd/credentiallibraries.gen.go b/internal/cmd/commands/credentiallibrariescmd/credentiallibraries.gen.go index e83a1c9d3..3e100424a 100644 --- a/internal/cmd/commands/credentiallibrariescmd/credentiallibraries.gen.go +++ b/internal/cmd/commands/credentiallibrariescmd/credentiallibraries.gen.go @@ -179,24 +179,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentiallibraries.CredentialLibrary - var listResult api.GenericListResult + var items []*credentiallibraries.CredentialLibrary + + var readResult *credentiallibraries.CredentialLibraryReadResult + + var deleteResult *credentiallibraries.CredentialLibraryDeleteResult + + var listResult *credentiallibraries.CredentialLibraryListResult switch c.Func { case "read": - result, err = credentiallibrariesClient.Read(c.Context, c.FlagId, opts...) + readResult, err = credentiallibrariesClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = credentiallibrariesClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = credentiallibrariesClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = credentiallibrariesClient.List(c.Context, c.FlagCredentialStoreId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, credentiallibrariesClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, credentiallibrariesClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -223,7 +235,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -236,13 +248,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*credentiallibraries.CredentialLibrary) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -251,10 +262,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -269,8 +280,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]credentiallibraries.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *credentiallibraries.Client, _ uint32, _ []credentiallibraries.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *credentiallibraries.CredentialLibrary, inItems []*credentiallibraries.CredentialLibrary, inErr error, _ *credentiallibraries.Client, _ uint32, _ []credentiallibraries.Option) (*api.Response, *credentiallibraries.CredentialLibrary, []*credentiallibraries.CredentialLibrary, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentiallibrariescmd/funcs.go b/internal/cmd/commands/credentiallibrariescmd/funcs.go index 9edd1166b..cb7876544 100644 --- a/internal/cmd/commands/credentiallibrariescmd/funcs.go +++ b/internal/cmd/commands/credentiallibrariescmd/funcs.go @@ -113,8 +113,7 @@ func (c *Command) printListTable(items []*credentiallibraries.CredentialLibrary) return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*credentiallibraries.CredentialLibrary) +func printItemTable(item *credentiallibraries.CredentialLibrary, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/credentiallibrariescmd/vault_credentiallibraries.gen.go b/internal/cmd/commands/credentiallibrariescmd/vault_credentiallibraries.gen.go index a69f162b4..33f91a885 100644 --- a/internal/cmd/commands/credentiallibrariescmd/vault_credentiallibraries.gen.go +++ b/internal/cmd/commands/credentiallibrariescmd/vault_credentiallibraries.gen.go @@ -193,19 +193,28 @@ func (c *VaultCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentiallibraries.CredentialLibrary + + var createResult *credentiallibraries.CredentialLibraryCreateResult + + var updateResult *credentiallibraries.CredentialLibraryUpdateResult switch c.Func { case "create": - result, err = credentiallibrariesClient.Create(c.Context, c.FlagCredentialStoreId, opts...) + createResult, err = credentiallibrariesClient.Create(c.Context, c.FlagCredentialStoreId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = credentiallibrariesClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = credentiallibrariesClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraVaultActions(c, result, err, credentiallibrariesClient, version, opts) + resp, item, err = executeExtraVaultActions(c, resp, item, err, credentiallibrariesClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -235,10 +244,10 @@ func (c *VaultCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -251,8 +260,8 @@ var ( extraVaultSynopsisFunc = func(*VaultCommand) string { return "" } extraVaultFlagsFunc = func(*VaultCommand, *base.FlagSets, *base.FlagSet) {} extraVaultFlagsHandlingFunc = func(*VaultCommand, *base.FlagSets, *[]credentiallibraries.Option) bool { return true } - executeExtraVaultActions = func(_ *VaultCommand, inResult api.GenericResult, inErr error, _ *credentiallibraries.Client, _ uint32, _ []credentiallibraries.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraVaultActions = func(_ *VaultCommand, inResp *api.Response, inItem *credentiallibraries.CredentialLibrary, inErr error, _ *credentiallibraries.Client, _ uint32, _ []credentiallibraries.Option) (*api.Response, *credentiallibraries.CredentialLibrary, error) { + return inResp, inItem, inErr } printCustomVaultActionOutput = func(*VaultCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialscmd/credentials.gen.go b/internal/cmd/commands/credentialscmd/credentials.gen.go index 7123fe254..77635e8ae 100644 --- a/internal/cmd/commands/credentialscmd/credentials.gen.go +++ b/internal/cmd/commands/credentialscmd/credentials.gen.go @@ -179,24 +179,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentials.Credential - var listResult api.GenericListResult + var items []*credentials.Credential + + var readResult *credentials.CredentialReadResult + + var deleteResult *credentials.CredentialDeleteResult + + var listResult *credentials.CredentialListResult switch c.Func { case "read": - result, err = credentialsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = credentialsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = credentialsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = credentialsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = credentialsClient.List(c.Context, c.FlagCredentialStoreId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, credentialsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, credentialsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -223,7 +235,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -236,13 +248,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*credentials.Credential) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -251,10 +262,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -269,8 +280,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]credentials.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *credentials.Credential, inItems []*credentials.Credential, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (*api.Response, *credentials.Credential, []*credentials.Credential, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialscmd/funcs.go b/internal/cmd/commands/credentialscmd/funcs.go index efec87e6d..6a6e4062c 100644 --- a/internal/cmd/commands/credentialscmd/funcs.go +++ b/internal/cmd/commands/credentialscmd/funcs.go @@ -114,8 +114,7 @@ func (c *Command) printListTable(items []*credentials.Credential) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*credentials.Credential) +func printItemTable(item *credentials.Credential, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/credentialscmd/ssh-private-key_credentials.gen.go b/internal/cmd/commands/credentialscmd/ssh-private-key_credentials.gen.go index 053e12277..6603be771 100644 --- a/internal/cmd/commands/credentialscmd/ssh-private-key_credentials.gen.go +++ b/internal/cmd/commands/credentialscmd/ssh-private-key_credentials.gen.go @@ -193,19 +193,28 @@ func (c *SshPrivateKeyCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentials.Credential + + var createResult *credentials.CredentialCreateResult + + var updateResult *credentials.CredentialUpdateResult switch c.Func { case "create": - result, err = credentialsClient.Create(c.Context, "ssh_private_key", c.FlagCredentialStoreId, opts...) + createResult, err = credentialsClient.Create(c.Context, "ssh_private_key", c.FlagCredentialStoreId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = credentialsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = credentialsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraSshPrivateKeyActions(c, result, err, credentialsClient, version, opts) + resp, item, err = executeExtraSshPrivateKeyActions(c, resp, item, err, credentialsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -235,10 +244,10 @@ func (c *SshPrivateKeyCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -251,8 +260,8 @@ var ( extraSshPrivateKeySynopsisFunc = func(*SshPrivateKeyCommand) string { return "" } extraSshPrivateKeyFlagsFunc = func(*SshPrivateKeyCommand, *base.FlagSets, *base.FlagSet) {} extraSshPrivateKeyFlagsHandlingFunc = func(*SshPrivateKeyCommand, *base.FlagSets, *[]credentials.Option) bool { return true } - executeExtraSshPrivateKeyActions = func(_ *SshPrivateKeyCommand, inResult api.GenericResult, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraSshPrivateKeyActions = func(_ *SshPrivateKeyCommand, inResp *api.Response, inItem *credentials.Credential, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (*api.Response, *credentials.Credential, error) { + return inResp, inItem, inErr } printCustomSshPrivateKeyActionOutput = func(*SshPrivateKeyCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialscmd/username-password_credentials.gen.go b/internal/cmd/commands/credentialscmd/username-password_credentials.gen.go index dcd646fbe..5dc7a4316 100644 --- a/internal/cmd/commands/credentialscmd/username-password_credentials.gen.go +++ b/internal/cmd/commands/credentialscmd/username-password_credentials.gen.go @@ -193,19 +193,28 @@ func (c *UsernamePasswordCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentials.Credential + + var createResult *credentials.CredentialCreateResult + + var updateResult *credentials.CredentialUpdateResult switch c.Func { case "create": - result, err = credentialsClient.Create(c.Context, "username_password", c.FlagCredentialStoreId, opts...) + createResult, err = credentialsClient.Create(c.Context, "username_password", c.FlagCredentialStoreId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = credentialsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = credentialsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraUsernamePasswordActions(c, result, err, credentialsClient, version, opts) + resp, item, err = executeExtraUsernamePasswordActions(c, resp, item, err, credentialsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -235,10 +244,10 @@ func (c *UsernamePasswordCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -251,8 +260,8 @@ var ( extraUsernamePasswordSynopsisFunc = func(*UsernamePasswordCommand) string { return "" } extraUsernamePasswordFlagsFunc = func(*UsernamePasswordCommand, *base.FlagSets, *base.FlagSet) {} extraUsernamePasswordFlagsHandlingFunc = func(*UsernamePasswordCommand, *base.FlagSets, *[]credentials.Option) bool { return true } - executeExtraUsernamePasswordActions = func(_ *UsernamePasswordCommand, inResult api.GenericResult, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraUsernamePasswordActions = func(_ *UsernamePasswordCommand, inResp *api.Response, inItem *credentials.Credential, inErr error, _ *credentials.Client, _ uint32, _ []credentials.Option) (*api.Response, *credentials.Credential, error) { + return inResp, inItem, inErr } printCustomUsernamePasswordActionOutput = func(*UsernamePasswordCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialstorescmd/credentialstores.gen.go b/internal/cmd/commands/credentialstorescmd/credentialstores.gen.go index 54366424a..47cc1403d 100644 --- a/internal/cmd/commands/credentialstorescmd/credentialstores.gen.go +++ b/internal/cmd/commands/credentialstorescmd/credentialstores.gen.go @@ -184,24 +184,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentialstores.CredentialStore - var listResult api.GenericListResult + var items []*credentialstores.CredentialStore + + var readResult *credentialstores.CredentialStoreReadResult + + var deleteResult *credentialstores.CredentialStoreDeleteResult + + var listResult *credentialstores.CredentialStoreListResult switch c.Func { case "read": - result, err = credentialstoresClient.Read(c.Context, c.FlagId, opts...) + readResult, err = credentialstoresClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = credentialstoresClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = credentialstoresClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = credentialstoresClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, credentialstoresClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, credentialstoresClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -228,7 +240,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -241,13 +253,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*credentialstores.CredentialStore) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -256,10 +267,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -274,8 +285,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]credentialstores.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *credentialstores.CredentialStore, inItems []*credentialstores.CredentialStore, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (*api.Response, *credentialstores.CredentialStore, []*credentialstores.CredentialStore, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialstorescmd/funcs.go b/internal/cmd/commands/credentialstorescmd/funcs.go index a0ed898f4..5c3e7c7a0 100644 --- a/internal/cmd/commands/credentialstorescmd/funcs.go +++ b/internal/cmd/commands/credentialstorescmd/funcs.go @@ -122,8 +122,7 @@ func (c *Command) printListTable(items []*credentialstores.CredentialStore) stri return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*credentialstores.CredentialStore) +func printItemTable(item *credentialstores.CredentialStore, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/credentialstorescmd/static_credentialstores.gen.go b/internal/cmd/commands/credentialstorescmd/static_credentialstores.gen.go index cb65d9545..39394e602 100644 --- a/internal/cmd/commands/credentialstorescmd/static_credentialstores.gen.go +++ b/internal/cmd/commands/credentialstorescmd/static_credentialstores.gen.go @@ -196,19 +196,28 @@ func (c *StaticCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentialstores.CredentialStore + + var createResult *credentialstores.CredentialStoreCreateResult + + var updateResult *credentialstores.CredentialStoreUpdateResult switch c.Func { case "create": - result, err = credentialstoresClient.Create(c.Context, "static", c.FlagScopeId, opts...) + createResult, err = credentialstoresClient.Create(c.Context, "static", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = credentialstoresClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = credentialstoresClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraStaticActions(c, result, err, credentialstoresClient, version, opts) + resp, item, err = executeExtraStaticActions(c, resp, item, err, credentialstoresClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -238,10 +247,10 @@ func (c *StaticCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -254,8 +263,8 @@ var ( extraStaticSynopsisFunc = func(*StaticCommand) string { return "" } extraStaticFlagsFunc = func(*StaticCommand, *base.FlagSets, *base.FlagSet) {} extraStaticFlagsHandlingFunc = func(*StaticCommand, *base.FlagSets, *[]credentialstores.Option) bool { return true } - executeExtraStaticActions = func(_ *StaticCommand, inResult api.GenericResult, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraStaticActions = func(_ *StaticCommand, inResp *api.Response, inItem *credentialstores.CredentialStore, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (*api.Response, *credentialstores.CredentialStore, error) { + return inResp, inItem, inErr } printCustomStaticActionOutput = func(*StaticCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/credentialstorescmd/vault_credentialstores.gen.go b/internal/cmd/commands/credentialstorescmd/vault_credentialstores.gen.go index a22b4f9da..992acfad8 100644 --- a/internal/cmd/commands/credentialstorescmd/vault_credentialstores.gen.go +++ b/internal/cmd/commands/credentialstorescmd/vault_credentialstores.gen.go @@ -198,19 +198,28 @@ func (c *VaultCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *credentialstores.CredentialStore + + var createResult *credentialstores.CredentialStoreCreateResult + + var updateResult *credentialstores.CredentialStoreUpdateResult switch c.Func { case "create": - result, err = credentialstoresClient.Create(c.Context, "vault", c.FlagScopeId, opts...) + createResult, err = credentialstoresClient.Create(c.Context, "vault", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = credentialstoresClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = credentialstoresClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraVaultActions(c, result, err, credentialstoresClient, version, opts) + resp, item, err = executeExtraVaultActions(c, resp, item, err, credentialstoresClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -240,10 +249,10 @@ func (c *VaultCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -256,8 +265,8 @@ var ( extraVaultSynopsisFunc = func(*VaultCommand) string { return "" } extraVaultFlagsFunc = func(*VaultCommand, *base.FlagSets, *base.FlagSet) {} extraVaultFlagsHandlingFunc = func(*VaultCommand, *base.FlagSets, *[]credentialstores.Option) bool { return true } - executeExtraVaultActions = func(_ *VaultCommand, inResult api.GenericResult, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraVaultActions = func(_ *VaultCommand, inResp *api.Response, inItem *credentialstores.CredentialStore, inErr error, _ *credentialstores.Client, _ uint32, _ []credentialstores.Option) (*api.Response, *credentialstores.CredentialStore, error) { + return inResp, inItem, inErr } printCustomVaultActionOutput = func(*VaultCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/groupscmd/funcs.go b/internal/cmd/commands/groupscmd/funcs.go index 2c017fb48..9e8a54dc7 100644 --- a/internal/cmd/commands/groupscmd/funcs.go +++ b/internal/cmd/commands/groupscmd/funcs.go @@ -128,16 +128,19 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]groups.Opt return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, groupClient *groups.Client, version uint32, opts []groups.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *groups.Group, origItems []*groups.Group, origError error, groupClient *groups.Client, version uint32, opts []groups.Option) (*api.Response, *groups.Group, []*groups.Group, error) { switch c.Func { case "add-members": - return groupClient.AddMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + result, err := groupClient.AddMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-members": - return groupClient.SetMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + result, err := groupClient.SetMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-members": - return groupClient.RemoveMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + result, err := groupClient.RemoveMembers(c.Context, c.FlagId, version, c.flagMembers, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*groups.Group) string { @@ -193,8 +196,7 @@ func (c *Command) printListTable(items []*groups.Group) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*groups.Group) +func printItemTable(item *groups.Group, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/groupscmd/groups.gen.go b/internal/cmd/commands/groupscmd/groups.gen.go index e081ea17f..322bcd9d4 100644 --- a/internal/cmd/commands/groupscmd/groups.gen.go +++ b/internal/cmd/commands/groupscmd/groups.gen.go @@ -248,30 +248,50 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *groups.Group - var listResult api.GenericListResult + var items []*groups.Group + + var createResult *groups.GroupCreateResult + + var readResult *groups.GroupReadResult + + var updateResult *groups.GroupUpdateResult + + var deleteResult *groups.GroupDeleteResult + + var listResult *groups.GroupListResult switch c.Func { case "create": - result, err = groupsClient.Create(c.Context, c.FlagScopeId, opts...) + createResult, err = groupsClient.Create(c.Context, c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "read": - result, err = groupsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = groupsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "update": - result, err = groupsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = groupsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() case "delete": - result, err = groupsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = groupsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = groupsClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, groupsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, groupsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -298,7 +318,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -311,13 +331,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*groups.Group) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -326,10 +345,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -344,8 +363,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]groups.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *groups.Client, _ uint32, _ []groups.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *groups.Group, inItems []*groups.Group, inErr error, _ *groups.Client, _ uint32, _ []groups.Option) (*api.Response, *groups.Group, []*groups.Group, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostcatalogscmd/funcs.go b/internal/cmd/commands/hostcatalogscmd/funcs.go index d1a1fd683..05c856610 100644 --- a/internal/cmd/commands/hostcatalogscmd/funcs.go +++ b/internal/cmd/commands/hostcatalogscmd/funcs.go @@ -119,8 +119,7 @@ func (c *Command) printListTable(items []*hostcatalogs.HostCatalog) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*hostcatalogs.HostCatalog) +func printItemTable(item *hostcatalogs.HostCatalog, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/hostcatalogscmd/hostcatalogs.gen.go b/internal/cmd/commands/hostcatalogscmd/hostcatalogs.gen.go index 2dbe07472..2ac531ce8 100644 --- a/internal/cmd/commands/hostcatalogscmd/hostcatalogs.gen.go +++ b/internal/cmd/commands/hostcatalogscmd/hostcatalogs.gen.go @@ -184,24 +184,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostcatalogs.HostCatalog - var listResult api.GenericListResult + var items []*hostcatalogs.HostCatalog + + var readResult *hostcatalogs.HostCatalogReadResult + + var deleteResult *hostcatalogs.HostCatalogDeleteResult + + var listResult *hostcatalogs.HostCatalogListResult switch c.Func { case "read": - result, err = hostcatalogsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = hostcatalogsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = hostcatalogsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = hostcatalogsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = hostcatalogsClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, hostcatalogsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, hostcatalogsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -228,7 +240,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -241,13 +253,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*hostcatalogs.HostCatalog) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -256,10 +267,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -274,8 +285,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]hostcatalogs.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *hostcatalogs.HostCatalog, inItems []*hostcatalogs.HostCatalog, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (*api.Response, *hostcatalogs.HostCatalog, []*hostcatalogs.HostCatalog, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostcatalogscmd/plugin_hostcatalogs.gen.go b/internal/cmd/commands/hostcatalogscmd/plugin_hostcatalogs.gen.go index bf15159a4..5598377d8 100644 --- a/internal/cmd/commands/hostcatalogscmd/plugin_hostcatalogs.gen.go +++ b/internal/cmd/commands/hostcatalogscmd/plugin_hostcatalogs.gen.go @@ -243,19 +243,28 @@ func (c *PluginCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostcatalogs.HostCatalog + + var createResult *hostcatalogs.HostCatalogCreateResult + + var updateResult *hostcatalogs.HostCatalogUpdateResult switch c.Func { case "create": - result, err = hostcatalogsClient.Create(c.Context, "plugin", c.FlagScopeId, opts...) + createResult, err = hostcatalogsClient.Create(c.Context, "plugin", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = hostcatalogsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = hostcatalogsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraPluginActions(c, result, err, hostcatalogsClient, version, opts) + resp, item, err = executeExtraPluginActions(c, resp, item, err, hostcatalogsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -283,10 +292,10 @@ func (c *PluginCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -299,8 +308,8 @@ var ( extraPluginSynopsisFunc = func(*PluginCommand) string { return "" } extraPluginFlagsFunc = func(*PluginCommand, *base.FlagSets, *base.FlagSet) {} extraPluginFlagsHandlingFunc = func(*PluginCommand, *base.FlagSets, *[]hostcatalogs.Option) bool { return true } - executeExtraPluginActions = func(_ *PluginCommand, inResult api.GenericResult, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraPluginActions = func(_ *PluginCommand, inResp *api.Response, inItem *hostcatalogs.HostCatalog, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (*api.Response, *hostcatalogs.HostCatalog, error) { + return inResp, inItem, inErr } printCustomPluginActionOutput = func(*PluginCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostcatalogscmd/static_hostcatalogs.gen.go b/internal/cmd/commands/hostcatalogscmd/static_hostcatalogs.gen.go index 989a22f46..9a06a150d 100644 --- a/internal/cmd/commands/hostcatalogscmd/static_hostcatalogs.gen.go +++ b/internal/cmd/commands/hostcatalogscmd/static_hostcatalogs.gen.go @@ -196,19 +196,28 @@ func (c *StaticCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostcatalogs.HostCatalog + + var createResult *hostcatalogs.HostCatalogCreateResult + + var updateResult *hostcatalogs.HostCatalogUpdateResult switch c.Func { case "create": - result, err = hostcatalogsClient.Create(c.Context, "static", c.FlagScopeId, opts...) + createResult, err = hostcatalogsClient.Create(c.Context, "static", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = hostcatalogsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = hostcatalogsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraStaticActions(c, result, err, hostcatalogsClient, version, opts) + resp, item, err = executeExtraStaticActions(c, resp, item, err, hostcatalogsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -236,10 +245,10 @@ func (c *StaticCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -252,8 +261,8 @@ var ( extraStaticSynopsisFunc = func(*StaticCommand) string { return "" } extraStaticFlagsFunc = func(*StaticCommand, *base.FlagSets, *base.FlagSet) {} extraStaticFlagsHandlingFunc = func(*StaticCommand, *base.FlagSets, *[]hostcatalogs.Option) bool { return true } - executeExtraStaticActions = func(_ *StaticCommand, inResult api.GenericResult, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraStaticActions = func(_ *StaticCommand, inResp *api.Response, inItem *hostcatalogs.HostCatalog, inErr error, _ *hostcatalogs.Client, _ uint32, _ []hostcatalogs.Option) (*api.Response, *hostcatalogs.HostCatalog, error) { + return inResp, inItem, inErr } printCustomStaticActionOutput = func(*StaticCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostscmd/funcs.go b/internal/cmd/commands/hostscmd/funcs.go index 94f6df777..0f481e6cd 100644 --- a/internal/cmd/commands/hostscmd/funcs.go +++ b/internal/cmd/commands/hostscmd/funcs.go @@ -113,8 +113,7 @@ func (c *Command) printListTable(items []*hosts.Host) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*hosts.Host) +func printItemTable(item *hosts.Host, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/hostscmd/hosts.gen.go b/internal/cmd/commands/hostscmd/hosts.gen.go index 4316dba34..7f3939cb8 100644 --- a/internal/cmd/commands/hostscmd/hosts.gen.go +++ b/internal/cmd/commands/hostscmd/hosts.gen.go @@ -195,24 +195,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hosts.Host - var listResult api.GenericListResult + var items []*hosts.Host + + var readResult *hosts.HostReadResult + + var deleteResult *hosts.HostDeleteResult + + var listResult *hosts.HostListResult switch c.Func { case "read": - result, err = hostsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = hostsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = hostsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = hostsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = hostsClient.List(c.Context, c.FlagHostCatalogId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, hostsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, hostsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -239,7 +251,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -252,13 +264,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*hosts.Host) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -267,10 +278,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -285,8 +296,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]hosts.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *hosts.Client, _ uint32, _ []hosts.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *hosts.Host, inItems []*hosts.Host, inErr error, _ *hosts.Client, _ uint32, _ []hosts.Option) (*api.Response, *hosts.Host, []*hosts.Host, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostscmd/static_hosts.gen.go b/internal/cmd/commands/hostscmd/static_hosts.gen.go index d16ace2c7..522a63a73 100644 --- a/internal/cmd/commands/hostscmd/static_hosts.gen.go +++ b/internal/cmd/commands/hostscmd/static_hosts.gen.go @@ -193,19 +193,28 @@ func (c *StaticCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hosts.Host + + var createResult *hosts.HostCreateResult + + var updateResult *hosts.HostUpdateResult switch c.Func { case "create": - result, err = hostsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + createResult, err = hostsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = hostsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = hostsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraStaticActions(c, result, err, hostsClient, version, opts) + resp, item, err = executeExtraStaticActions(c, resp, item, err, hostsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -233,10 +242,10 @@ func (c *StaticCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -249,8 +258,8 @@ var ( extraStaticSynopsisFunc = func(*StaticCommand) string { return "" } extraStaticFlagsFunc = func(*StaticCommand, *base.FlagSets, *base.FlagSet) {} extraStaticFlagsHandlingFunc = func(*StaticCommand, *base.FlagSets, *[]hosts.Option) bool { return true } - executeExtraStaticActions = func(_ *StaticCommand, inResult api.GenericResult, inErr error, _ *hosts.Client, _ uint32, _ []hosts.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraStaticActions = func(_ *StaticCommand, inResp *api.Response, inItem *hosts.Host, inErr error, _ *hosts.Client, _ uint32, _ []hosts.Option) (*api.Response, *hosts.Host, error) { + return inResp, inItem, inErr } printCustomStaticActionOutput = func(*StaticCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostsetscmd/funcs.go b/internal/cmd/commands/hostsetscmd/funcs.go index c6477b38e..d34e178c1 100644 --- a/internal/cmd/commands/hostsetscmd/funcs.go +++ b/internal/cmd/commands/hostsetscmd/funcs.go @@ -160,16 +160,19 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]hostsets.O return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, hostsetClient *hostsets.Client, version uint32, opts []hostsets.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *hostsets.HostSet, origItems []*hostsets.HostSet, origError error, hostsetClient *hostsets.Client, version uint32, opts []hostsets.Option) (*api.Response, *hostsets.HostSet, []*hostsets.HostSet, error) { switch c.Func { case "add-hosts": - return hostsetClient.AddHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + result, err := hostsetClient.AddHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-hosts": - return hostsetClient.RemoveHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + result, err := hostsetClient.RemoveHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-hosts": - return hostsetClient.SetHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + result, err := hostsetClient.SetHosts(c.Context, c.FlagId, version, c.flagHosts, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*hostsets.HostSet) string { @@ -231,8 +234,7 @@ func (c *Command) printListTable(items []*hostsets.HostSet) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*hostsets.HostSet) +func printItemTable(item *hostsets.HostSet, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/hostsetscmd/hostsets.gen.go b/internal/cmd/commands/hostsetscmd/hostsets.gen.go index 5df30d0be..abf671390 100644 --- a/internal/cmd/commands/hostsetscmd/hostsets.gen.go +++ b/internal/cmd/commands/hostsetscmd/hostsets.gen.go @@ -225,24 +225,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostsets.HostSet - var listResult api.GenericListResult + var items []*hostsets.HostSet + + var readResult *hostsets.HostSetReadResult + + var deleteResult *hostsets.HostSetDeleteResult + + var listResult *hostsets.HostSetListResult switch c.Func { case "read": - result, err = hostsetsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = hostsetsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = hostsetsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = hostsetsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = hostsetsClient.List(c.Context, c.FlagHostCatalogId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, hostsetsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, hostsetsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -269,7 +281,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -282,13 +294,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*hostsets.HostSet) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -297,10 +308,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -315,8 +326,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]hostsets.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *hostsets.HostSet, inItems []*hostsets.HostSet, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (*api.Response, *hostsets.HostSet, []*hostsets.HostSet, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostsetscmd/plugin_hostsets.gen.go b/internal/cmd/commands/hostsetscmd/plugin_hostsets.gen.go index 9299a4c04..d6e5e43a6 100644 --- a/internal/cmd/commands/hostsetscmd/plugin_hostsets.gen.go +++ b/internal/cmd/commands/hostsetscmd/plugin_hostsets.gen.go @@ -211,19 +211,28 @@ func (c *PluginCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostsets.HostSet + + var createResult *hostsets.HostSetCreateResult + + var updateResult *hostsets.HostSetUpdateResult switch c.Func { case "create": - result, err = hostsetsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + createResult, err = hostsetsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = hostsetsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = hostsetsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraPluginActions(c, result, err, hostsetsClient, version, opts) + resp, item, err = executeExtraPluginActions(c, resp, item, err, hostsetsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -251,10 +260,10 @@ func (c *PluginCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -267,8 +276,8 @@ var ( extraPluginSynopsisFunc = func(*PluginCommand) string { return "" } extraPluginFlagsFunc = func(*PluginCommand, *base.FlagSets, *base.FlagSet) {} extraPluginFlagsHandlingFunc = func(*PluginCommand, *base.FlagSets, *[]hostsets.Option) bool { return true } - executeExtraPluginActions = func(_ *PluginCommand, inResult api.GenericResult, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraPluginActions = func(_ *PluginCommand, inResp *api.Response, inItem *hostsets.HostSet, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (*api.Response, *hostsets.HostSet, error) { + return inResp, inItem, inErr } printCustomPluginActionOutput = func(*PluginCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/hostsetscmd/static_hostsets.gen.go b/internal/cmd/commands/hostsetscmd/static_hostsets.gen.go index fbf80b92a..9aa885159 100644 --- a/internal/cmd/commands/hostsetscmd/static_hostsets.gen.go +++ b/internal/cmd/commands/hostsetscmd/static_hostsets.gen.go @@ -191,19 +191,28 @@ func (c *StaticCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *hostsets.HostSet + + var createResult *hostsets.HostSetCreateResult + + var updateResult *hostsets.HostSetUpdateResult switch c.Func { case "create": - result, err = hostsetsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + createResult, err = hostsetsClient.Create(c.Context, c.FlagHostCatalogId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = hostsetsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = hostsetsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraStaticActions(c, result, err, hostsetsClient, version, opts) + resp, item, err = executeExtraStaticActions(c, resp, item, err, hostsetsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -231,10 +240,10 @@ func (c *StaticCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -247,8 +256,8 @@ var ( extraStaticSynopsisFunc = func(*StaticCommand) string { return "" } extraStaticFlagsFunc = func(*StaticCommand, *base.FlagSets, *base.FlagSet) {} extraStaticFlagsHandlingFunc = func(*StaticCommand, *base.FlagSets, *[]hostsets.Option) bool { return true } - executeExtraStaticActions = func(_ *StaticCommand, inResult api.GenericResult, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraStaticActions = func(_ *StaticCommand, inResp *api.Response, inItem *hostsets.HostSet, inErr error, _ *hostsets.Client, _ uint32, _ []hostsets.Option) (*api.Response, *hostsets.HostSet, error) { + return inResp, inItem, inErr } printCustomStaticActionOutput = func(*StaticCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/managedgroupscmd/funcs.go b/internal/cmd/commands/managedgroupscmd/funcs.go index 212cbd14a..9dd0c28d6 100644 --- a/internal/cmd/commands/managedgroupscmd/funcs.go +++ b/internal/cmd/commands/managedgroupscmd/funcs.go @@ -62,8 +62,7 @@ func (c *Command) printListTable(items []*managedgroups.ManagedGroup) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*managedgroups.ManagedGroup) +func printItemTable(item *managedgroups.ManagedGroup, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/managedgroupscmd/managedgroups.gen.go b/internal/cmd/commands/managedgroupscmd/managedgroups.gen.go index 0a2656650..a7effdad7 100644 --- a/internal/cmd/commands/managedgroupscmd/managedgroups.gen.go +++ b/internal/cmd/commands/managedgroupscmd/managedgroups.gen.go @@ -195,24 +195,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *managedgroups.ManagedGroup - var listResult api.GenericListResult + var items []*managedgroups.ManagedGroup + + var readResult *managedgroups.ManagedGroupReadResult + + var deleteResult *managedgroups.ManagedGroupDeleteResult + + var listResult *managedgroups.ManagedGroupListResult switch c.Func { case "read": - result, err = managedgroupsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = managedgroupsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = managedgroupsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = managedgroupsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = managedgroupsClient.List(c.Context, c.FlagAuthMethodId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, managedgroupsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, managedgroupsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -239,7 +251,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -252,13 +264,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*managedgroups.ManagedGroup) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -267,10 +278,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -285,8 +296,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]managedgroups.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *managedgroups.Client, _ uint32, _ []managedgroups.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *managedgroups.ManagedGroup, inItems []*managedgroups.ManagedGroup, inErr error, _ *managedgroups.Client, _ uint32, _ []managedgroups.Option) (*api.Response, *managedgroups.ManagedGroup, []*managedgroups.ManagedGroup, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/managedgroupscmd/oidc_managedgroups.gen.go b/internal/cmd/commands/managedgroupscmd/oidc_managedgroups.gen.go index 3bb57a61e..8182f5a4b 100644 --- a/internal/cmd/commands/managedgroupscmd/oidc_managedgroups.gen.go +++ b/internal/cmd/commands/managedgroupscmd/oidc_managedgroups.gen.go @@ -193,19 +193,28 @@ func (c *OidcCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *managedgroups.ManagedGroup + + var createResult *managedgroups.ManagedGroupCreateResult + + var updateResult *managedgroups.ManagedGroupUpdateResult switch c.Func { case "create": - result, err = managedgroupsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + createResult, err = managedgroupsClient.Create(c.Context, c.FlagAuthMethodId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = managedgroupsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = managedgroupsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraOidcActions(c, result, err, managedgroupsClient, version, opts) + resp, item, err = executeExtraOidcActions(c, resp, item, err, managedgroupsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -233,10 +242,10 @@ func (c *OidcCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -249,8 +258,8 @@ var ( extraOidcSynopsisFunc = func(*OidcCommand) string { return "" } extraOidcFlagsFunc = func(*OidcCommand, *base.FlagSets, *base.FlagSet) {} extraOidcFlagsHandlingFunc = func(*OidcCommand, *base.FlagSets, *[]managedgroups.Option) bool { return true } - executeExtraOidcActions = func(_ *OidcCommand, inResult api.GenericResult, inErr error, _ *managedgroups.Client, _ uint32, _ []managedgroups.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraOidcActions = func(_ *OidcCommand, inResp *api.Response, inItem *managedgroups.ManagedGroup, inErr error, _ *managedgroups.Client, _ uint32, _ []managedgroups.Option) (*api.Response, *managedgroups.ManagedGroup, error) { + return inResp, inItem, inErr } printCustomOidcActionOutput = func(*OidcCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/rolescmd/funcs.go b/internal/cmd/commands/rolescmd/funcs.go index 5c0d85bf6..8d32a9a11 100644 --- a/internal/cmd/commands/rolescmd/funcs.go +++ b/internal/cmd/commands/rolescmd/funcs.go @@ -226,22 +226,28 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]roles.Opti return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, roleClient *roles.Client, version uint32, opts []roles.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *roles.Role, origItems []*roles.Role, origError error, roleClient *roles.Client, version uint32, opts []roles.Option) (*api.Response, *roles.Role, []*roles.Role, error) { switch c.Func { case "add-principals": - return roleClient.AddPrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + result, err := roleClient.AddPrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-principals": - return roleClient.SetPrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + result, err := roleClient.SetPrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-principals": - return roleClient.RemovePrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + result, err := roleClient.RemovePrincipals(c.Context, c.FlagId, version, c.flagPrincipals, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "add-grants": - return roleClient.AddGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + result, err := roleClient.AddGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-grants": - return roleClient.SetGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + result, err := roleClient.SetGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-grants": - return roleClient.RemoveGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + result, err := roleClient.RemoveGrants(c.Context, c.FlagId, version, c.flagGrants, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*roles.Role) string { @@ -298,8 +304,7 @@ func (c *Command) printListTable(items []*roles.Role) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*roles.Role) +func printItemTable(item *roles.Role, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/rolescmd/roles.gen.go b/internal/cmd/commands/rolescmd/roles.gen.go index 62130bf7e..898e92078 100644 --- a/internal/cmd/commands/rolescmd/roles.gen.go +++ b/internal/cmd/commands/rolescmd/roles.gen.go @@ -272,30 +272,50 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *roles.Role - var listResult api.GenericListResult + var items []*roles.Role + + var createResult *roles.RoleCreateResult + + var readResult *roles.RoleReadResult + + var updateResult *roles.RoleUpdateResult + + var deleteResult *roles.RoleDeleteResult + + var listResult *roles.RoleListResult switch c.Func { case "create": - result, err = rolesClient.Create(c.Context, c.FlagScopeId, opts...) + createResult, err = rolesClient.Create(c.Context, c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "read": - result, err = rolesClient.Read(c.Context, c.FlagId, opts...) + readResult, err = rolesClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "update": - result, err = rolesClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = rolesClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() case "delete": - result, err = rolesClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = rolesClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = rolesClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, rolesClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, rolesClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -322,7 +342,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -335,13 +355,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*roles.Role) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -350,10 +369,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -368,8 +387,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]roles.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *roles.Client, _ uint32, _ []roles.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *roles.Role, inItems []*roles.Role, inErr error, _ *roles.Client, _ uint32, _ []roles.Option) (*api.Response, *roles.Role, []*roles.Role, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/scopescmd/funcs.go b/internal/cmd/commands/scopescmd/funcs.go index 3735dd332..c6f2e13fa 100644 --- a/internal/cmd/commands/scopescmd/funcs.go +++ b/internal/cmd/commands/scopescmd/funcs.go @@ -128,8 +128,7 @@ func (c *Command) printListTable(items []*scopes.Scope) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*scopes.Scope) +func printItemTable(item *scopes.Scope, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/scopescmd/scopes.gen.go b/internal/cmd/commands/scopescmd/scopes.gen.go index 2b6e48a79..3c75240a8 100644 --- a/internal/cmd/commands/scopescmd/scopes.gen.go +++ b/internal/cmd/commands/scopescmd/scopes.gen.go @@ -224,30 +224,50 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *scopes.Scope - var listResult api.GenericListResult + var items []*scopes.Scope + + var createResult *scopes.ScopeCreateResult + + var readResult *scopes.ScopeReadResult + + var updateResult *scopes.ScopeUpdateResult + + var deleteResult *scopes.ScopeDeleteResult + + var listResult *scopes.ScopeListResult switch c.Func { case "create": - result, err = scopesClient.Create(c.Context, c.FlagScopeId, opts...) + createResult, err = scopesClient.Create(c.Context, c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "read": - result, err = scopesClient.Read(c.Context, c.FlagId, opts...) + readResult, err = scopesClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "update": - result, err = scopesClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = scopesClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() case "delete": - result, err = scopesClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = scopesClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = scopesClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, scopesClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, scopesClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -274,7 +294,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -287,13 +307,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*scopes.Scope) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -302,10 +321,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -320,8 +339,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]scopes.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *scopes.Client, _ uint32, _ []scopes.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *scopes.Scope, inItems []*scopes.Scope, inErr error, _ *scopes.Client, _ uint32, _ []scopes.Option) (*api.Response, *scopes.Scope, []*scopes.Scope, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/sessionscmd/funcs.go b/internal/cmd/commands/sessionscmd/funcs.go index 4cc7bdf2d..f1acfe74b 100644 --- a/internal/cmd/commands/sessionscmd/funcs.go +++ b/internal/cmd/commands/sessionscmd/funcs.go @@ -86,12 +86,13 @@ func (c *Command) extraHelpFunc(helpMap map[string]func() string) string { return helpStr + c.Flags().Help() } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, sessionClient *sessions.Client, version uint32, opts []sessions.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *sessions.Session, origItems []*sessions.Session, origError error, sessionClient *sessions.Client, version uint32, opts []sessions.Option) (*api.Response, *sessions.Session, []*sessions.Session, error) { switch c.Func { case "cancel": - return sessionClient.Cancel(c.Context, c.FlagId, version, opts...) + result, err := sessionClient.Cancel(c.Context, c.FlagId, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*sessions.Session) string { @@ -162,8 +163,7 @@ func (c *Command) printListTable(items []*sessions.Session) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*sessions.Session) +func printItemTable(item *sessions.Session, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/sessionscmd/sessions.gen.go b/internal/cmd/commands/sessionscmd/sessions.gen.go index 5308fd5da..1eb0974cb 100644 --- a/internal/cmd/commands/sessionscmd/sessions.gen.go +++ b/internal/cmd/commands/sessionscmd/sessions.gen.go @@ -193,21 +193,30 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *sessions.Session - var listResult api.GenericListResult + var items []*sessions.Session + + var readResult *sessions.SessionReadResult + + var listResult *sessions.SessionListResult switch c.Func { case "read": - result, err = sessionsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = sessionsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "list": listResult, err = sessionsClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, sessionsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, sessionsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -234,13 +243,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*sessions.Session) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -249,10 +257,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -267,8 +275,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]sessions.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *sessions.Client, _ uint32, _ []sessions.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *sessions.Session, inItems []*sessions.Session, inErr error, _ *sessions.Client, _ uint32, _ []sessions.Option) (*api.Response, *sessions.Session, []*sessions.Session, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/targetscmd/funcs.go b/internal/cmd/commands/targetscmd/funcs.go index 49c12f661..84aec71c2 100644 --- a/internal/cmd/commands/targetscmd/funcs.go +++ b/internal/cmd/commands/targetscmd/funcs.go @@ -462,33 +462,42 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]targets.Op return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, targetClient *targets.Client, version uint32, opts []targets.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *targets.Target, origItems []*targets.Target, origError error, targetClient *targets.Client, version uint32, opts []targets.Option) (*api.Response, *targets.Target, []*targets.Target, error) { switch c.Func { case "add-host-sets": - return targetClient.AddHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + result, err := targetClient.AddHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-host-sets": - return targetClient.RemoveHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + result, err := targetClient.RemoveHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-host-sets": - return targetClient.SetHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + result, err := targetClient.SetHostSets(c.Context, c.FlagId, version, c.flagHostSets, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "add-host-sources": - return targetClient.AddHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + result, err := targetClient.AddHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-host-sources": - return targetClient.RemoveHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + result, err := targetClient.RemoveHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-host-sources": - return targetClient.SetHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + result, err := targetClient.SetHostSources(c.Context, c.FlagId, version, c.flagHostSources, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "add-credential-sources": - return targetClient.AddCredentialSources(c.Context, c.FlagId, version, opts...) + result, err := targetClient.AddCredentialSources(c.Context, c.FlagId, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-credential-sources": - return targetClient.RemoveCredentialSources(c.Context, c.FlagId, version, opts...) + result, err := targetClient.RemoveCredentialSources(c.Context, c.FlagId, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-credential-sources": - return targetClient.SetCredentialSources(c.Context, c.FlagId, version, opts...) + result, err := targetClient.SetCredentialSources(c.Context, c.FlagId, version, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "authorize-session": var err error c.plural = "a session against target" c.sar, err = targetClient.AuthorizeSession(c.Context, c.FlagId, opts...) - return nil, err + return nil, nil, nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*targets.Target) string { @@ -549,8 +558,7 @@ func (c *Command) printListTable(items []*targets.Target) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*targets.Target) +func printItemTable(item *targets.Target, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id @@ -576,11 +584,11 @@ func printItemTable(result api.GenericResult) string { if item.WorkerFilter != "" { nonAttributeMap["Worker Filter"] = item.WorkerFilter } - if result.GetResponse() != nil && result.GetResponse().Map != nil { - if result.GetResponse().Map[globals.SessionConnectionLimitField] != nil { + if resp != nil && resp.Map != nil { + if resp.Map[globals.SessionConnectionLimitField] != nil { nonAttributeMap["Session Connection Limit"] = item.SessionConnectionLimit } - if result.GetResponse().Map[globals.SessionMaxSecondsField] != nil { + if resp.Map[globals.SessionMaxSecondsField] != nil { nonAttributeMap["Session Max Seconds"] = item.SessionMaxSeconds } } @@ -830,7 +838,7 @@ func printCustomActionOutputImpl(c *Command) (bool, error) { return true, nil case "json": - if ok := c.PrintJsonItem(c.sar); !ok { + if ok := c.PrintJsonItem(c.sar.GetResponse()); !ok { return false, fmt.Errorf("Error formatting as JSON") } return true, nil @@ -883,7 +891,5 @@ func exampleOutput() string { "default_port": 22, }, } - target := new(targets.TargetReadResult) - target.Item = item - return printItemTable(target) + return printItemTable(item, nil) } diff --git a/internal/cmd/commands/targetscmd/targets.gen.go b/internal/cmd/commands/targetscmd/targets.gen.go index 3b75cec70..c6f3818f0 100644 --- a/internal/cmd/commands/targetscmd/targets.gen.go +++ b/internal/cmd/commands/targetscmd/targets.gen.go @@ -279,24 +279,36 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *targets.Target - var listResult api.GenericListResult + var items []*targets.Target + + var readResult *targets.TargetReadResult + + var deleteResult *targets.TargetDeleteResult + + var listResult *targets.TargetListResult switch c.Func { case "read": - result, err = targetsClient.Read(c.Context, c.FlagId, opts...) + readResult, err = targetsClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "delete": - result, err = targetsClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = targetsClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = targetsClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, targetsClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, targetsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -323,7 +335,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -336,13 +348,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*targets.Target) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -351,10 +362,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -369,8 +380,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]targets.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *targets.Client, _ uint32, _ []targets.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *targets.Target, inItems []*targets.Target, inErr error, _ *targets.Client, _ uint32, _ []targets.Option) (*api.Response, *targets.Target, []*targets.Target, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/targetscmd/tcp_targets.gen.go b/internal/cmd/commands/targetscmd/tcp_targets.gen.go index e4f82feac..9acde05f5 100644 --- a/internal/cmd/commands/targetscmd/tcp_targets.gen.go +++ b/internal/cmd/commands/targetscmd/tcp_targets.gen.go @@ -198,19 +198,28 @@ func (c *TcpCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *targets.Target + + var createResult *targets.TargetCreateResult + + var updateResult *targets.TargetUpdateResult switch c.Func { case "create": - result, err = targetsClient.Create(c.Context, "tcp", c.FlagScopeId, opts...) + createResult, err = targetsClient.Create(c.Context, "tcp", c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "update": - result, err = targetsClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = targetsClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() } - result, err = executeExtraTcpActions(c, result, err, targetsClient, version, opts) + resp, item, err = executeExtraTcpActions(c, resp, item, err, targetsClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -238,10 +247,10 @@ func (c *TcpCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -254,8 +263,8 @@ var ( extraTcpSynopsisFunc = func(*TcpCommand) string { return "" } extraTcpFlagsFunc = func(*TcpCommand, *base.FlagSets, *base.FlagSet) {} extraTcpFlagsHandlingFunc = func(*TcpCommand, *base.FlagSets, *[]targets.Option) bool { return true } - executeExtraTcpActions = func(_ *TcpCommand, inResult api.GenericResult, inErr error, _ *targets.Client, _ uint32, _ []targets.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraTcpActions = func(_ *TcpCommand, inResp *api.Response, inItem *targets.Target, inErr error, _ *targets.Client, _ uint32, _ []targets.Option) (*api.Response, *targets.Target, error) { + return inResp, inItem, inErr } printCustomTcpActionOutput = func(*TcpCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/userscmd/funcs.go b/internal/cmd/commands/userscmd/funcs.go index ff9d6f671..1b8ddf63a 100644 --- a/internal/cmd/commands/userscmd/funcs.go +++ b/internal/cmd/commands/userscmd/funcs.go @@ -127,16 +127,19 @@ func extraFlagsHandlingFuncImpl(c *Command, _ *base.FlagSets, opts *[]users.Opti return true } -func executeExtraActionsImpl(c *Command, origResult api.GenericResult, origError error, userClient *users.Client, version uint32, opts []users.Option) (api.GenericResult, error) { +func executeExtraActionsImpl(c *Command, origResp *api.Response, origItem *users.User, origItems []*users.User, origError error, userClient *users.Client, version uint32, opts []users.Option) (*api.Response, *users.User, []*users.User, error) { switch c.Func { case "add-accounts": - return userClient.AddAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + result, err := userClient.AddAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "set-accounts": - return userClient.SetAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + result, err := userClient.SetAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + return result.GetResponse(), result.GetItem(), nil, err case "remove-accounts": - return userClient.RemoveAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + result, err := userClient.RemoveAccounts(c.Context, c.FlagId, version, c.flagAccounts, opts...) + return result.GetResponse(), result.GetItem(), nil, err } - return origResult, origError + return origResp, origItem, origItems, origError } func (c *Command) printListTable(items []*users.User) string { @@ -215,8 +218,7 @@ func (c *Command) printListTable(items []*users.User) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*users.User) +func printItemTable(item *users.User, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id diff --git a/internal/cmd/commands/userscmd/users.gen.go b/internal/cmd/commands/userscmd/users.gen.go index 822d961f2..ad868dd78 100644 --- a/internal/cmd/commands/userscmd/users.gen.go +++ b/internal/cmd/commands/userscmd/users.gen.go @@ -248,30 +248,50 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *users.User - var listResult api.GenericListResult + var items []*users.User + + var createResult *users.UserCreateResult + + var readResult *users.UserReadResult + + var updateResult *users.UserUpdateResult + + var deleteResult *users.UserDeleteResult + + var listResult *users.UserListResult switch c.Func { case "create": - result, err = usersClient.Create(c.Context, c.FlagScopeId, opts...) + createResult, err = usersClient.Create(c.Context, c.FlagScopeId, opts...) + resp = createResult.GetResponse() + item = createResult.GetItem() case "read": - result, err = usersClient.Read(c.Context, c.FlagId, opts...) + readResult, err = usersClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "update": - result, err = usersClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = usersClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() case "delete": - result, err = usersClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = usersClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = usersClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, usersClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, usersClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -298,7 +318,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -311,13 +331,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*users.User) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -326,10 +345,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -344,8 +363,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]users.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *users.Client, _ uint32, _ []users.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *users.User, inItems []*users.User, inErr error, _ *users.Client, _ uint32, _ []users.Option) (*api.Response, *users.User, []*users.User, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/workerscmd/funcs.go b/internal/cmd/commands/workerscmd/funcs.go index 380a83f86..550d007b9 100644 --- a/internal/cmd/commands/workerscmd/funcs.go +++ b/internal/cmd/commands/workerscmd/funcs.go @@ -101,8 +101,7 @@ func (c *Command) printListTable(items []*workers.Worker) string { return base.WrapForHelpText(output) } -func printItemTable(result api.GenericResult) string { - item := result.GetItem().(*workers.Worker) +func printItemTable(item *workers.Worker, resp *api.Response) string { nonAttributeMap := map[string]interface{}{} if item.Id != "" { nonAttributeMap["ID"] = item.Id @@ -132,7 +131,7 @@ func printItemTable(result api.GenericResult) string { nonAttributeMap["Last Status Time"] = item.LastStatusTime } - resultMap := result.GetResponse().Map + resultMap := resp.Map if count, ok := resultMap[globals.ActiveConnectionCountField]; ok { nonAttributeMap["Active Connection Count"] = count } diff --git a/internal/cmd/commands/workerscmd/worker-led_funcs.go b/internal/cmd/commands/workerscmd/worker-led_funcs.go index 5c07dda6a..13a1cffba 100644 --- a/internal/cmd/commands/workerscmd/worker-led_funcs.go +++ b/internal/cmd/commands/workerscmd/worker-led_funcs.go @@ -54,10 +54,11 @@ func extraWorkerLedFlagsFuncImpl(c *WorkerLedCommand, set *base.FlagSets, f *bas } } -func executeExtraWorkerLedActionsImpl(c *WorkerLedCommand, origResult api.GenericResult, origError error, workerClient *workers.Client, version uint32, opts []workers.Option) (api.GenericResult, error) { +func executeExtraWorkerLedActionsImpl(c *WorkerLedCommand, origResp *api.Response, origItem *workers.Worker, origError error, workerClient *workers.Client, version uint32, opts []workers.Option) (*api.Response, *workers.Worker, error) { switch c.Func { case "create": - return workerClient.CreateWorkerLed(c.Context, c.flagWorkerGeneratedAuthToken, c.FlagScopeId, opts...) + result, err := workerClient.CreateWorkerLed(c.Context, c.flagWorkerGeneratedAuthToken, c.FlagScopeId, opts...) + return result.GetResponse(), result.GetItem(), err } - return origResult, origError + return origResp, origItem, origError } diff --git a/internal/cmd/commands/workerscmd/worker-led_workers.gen.go b/internal/cmd/commands/workerscmd/worker-led_workers.gen.go index caa2c17e9..b202e37ff 100644 --- a/internal/cmd/commands/workerscmd/worker-led_workers.gen.go +++ b/internal/cmd/commands/workerscmd/worker-led_workers.gen.go @@ -187,13 +187,14 @@ func (c *WorkerLedCommand) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *workers.Worker switch c.Func { } - result, err = executeExtraWorkerLedActions(c, result, err, workersClient, version, opts) + resp, item, err = executeExtraWorkerLedActions(c, resp, item, err, workersClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -221,10 +222,10 @@ func (c *WorkerLedCommand) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -237,8 +238,8 @@ var ( extraWorkerLedSynopsisFunc = func(*WorkerLedCommand) string { return "" } extraWorkerLedFlagsFunc = func(*WorkerLedCommand, *base.FlagSets, *base.FlagSet) {} extraWorkerLedFlagsHandlingFunc = func(*WorkerLedCommand, *base.FlagSets, *[]workers.Option) bool { return true } - executeExtraWorkerLedActions = func(_ *WorkerLedCommand, inResult api.GenericResult, inErr error, _ *workers.Client, _ uint32, _ []workers.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraWorkerLedActions = func(_ *WorkerLedCommand, inResp *api.Response, inItem *workers.Worker, inErr error, _ *workers.Client, _ uint32, _ []workers.Option) (*api.Response, *workers.Worker, error) { + return inResp, inItem, inErr } printCustomWorkerLedActionOutput = func(*WorkerLedCommand) (bool, error) { return false, nil } ) diff --git a/internal/cmd/commands/workerscmd/workers.gen.go b/internal/cmd/commands/workerscmd/workers.gen.go index d9434dae6..b43abc98f 100644 --- a/internal/cmd/commands/workerscmd/workers.gen.go +++ b/internal/cmd/commands/workerscmd/workers.gen.go @@ -214,27 +214,43 @@ func (c *Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *workers.Worker - var listResult api.GenericListResult + var items []*workers.Worker + + var readResult *workers.WorkerReadResult + + var updateResult *workers.WorkerUpdateResult + + var deleteResult *workers.WorkerDeleteResult + + var listResult *workers.WorkerListResult switch c.Func { case "read": - result, err = workersClient.Read(c.Context, c.FlagId, opts...) + readResult, err = workersClient.Read(c.Context, c.FlagId, opts...) + resp = readResult.GetResponse() + item = readResult.GetItem() case "update": - result, err = workersClient.Update(c.Context, c.FlagId, version, opts...) + updateResult, err = workersClient.Update(c.Context, c.FlagId, version, opts...) + resp = updateResult.GetResponse() + item = updateResult.GetItem() case "delete": - result, err = workersClient.Delete(c.Context, c.FlagId, opts...) + deleteResult, err = workersClient.Delete(c.Context, c.FlagId, opts...) + resp = deleteResult.GetResponse() case "list": listResult, err = workersClient.List(c.Context, c.FlagScopeId, opts...) + resp = listResult.GetResponse() + items = listResult.GetItems() } - result, err = executeExtraActions(c, result, err, workersClient, version, opts) + resp, item, items, err = executeExtraActions(c, resp, item, items, err, workersClient, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -261,7 +277,7 @@ func (c *Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -274,13 +290,12 @@ func (c *Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*workers.Worker) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -289,10 +304,10 @@ func (c *Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -307,8 +322,8 @@ var ( extraSynopsisFunc = func(*Command) string { return "" } extraFlagsFunc = func(*Command, *base.FlagSets, *base.FlagSet) {} extraFlagsHandlingFunc = func(*Command, *base.FlagSets, *[]workers.Option) bool { return true } - executeExtraActions = func(_ *Command, inResult api.GenericResult, inErr error, _ *workers.Client, _ uint32, _ []workers.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtraActions = func(_ *Command, inResp *api.Response, inItem *workers.Worker, inItems []*workers.Worker, inErr error, _ *workers.Client, _ uint32, _ []workers.Option) (*api.Response, *workers.Worker, []*workers.Worker, error) { + return inResp, inItem, inItems, inErr } printCustomActionOutput = func(*Command) (bool, error) { return false, nil } ) diff --git a/internal/cmd/gencli/templates.go b/internal/cmd/gencli/templates.go index e353905d9..732f2358a 100644 --- a/internal/cmd/gencli/templates.go +++ b/internal/cmd/gencli/templates.go @@ -399,9 +399,15 @@ func (c *{{ camelCase .SubActionPrefix }}Command) Run(args []string) int { return base.CommandUserError } - var result api.GenericResult + var resp *api.Response + var item *{{ $input.Pkg }}.{{ camelCase $input.ResourceType }} {{ if hasAction .StdActions "list" }} - var listResult api.GenericListResult + var items []*{{ $input.Pkg }}.{{ camelCase $input.ResourceType }} + {{ end }} + {{ range $i, $action := $input.StdActions }} + {{ if ( not ( hasAction $input.SkipClientCallActions $action) ) }} + var {{ $action }}Result *{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}{{ camelCase $action }}Result + {{ end }} {{ end }} switch c.Func { @@ -409,29 +415,38 @@ func (c *{{ camelCase .SubActionPrefix }}Command) Run(args []string) int { {{ if eq $action "create" }} {{ if ( not ( hasAction $input.SkipClientCallActions "create") ) }} case "create": - result, err = {{ $input.Pkg }}Client.Create(c.Context, {{ if (and $input.SubActionPrefix $input.NeedsSubtypeInCreate) }}"{{ $input.SubActionPrefix }}",{{ end }} c.Flag{{ $input.Container }}Id, opts...) + {{ $action }}Result, err = {{ $input.Pkg }}Client.Create(c.Context, {{ if (and $input.SubActionPrefix $input.NeedsSubtypeInCreate) }}"{{ $input.SubActionPrefix }}",{{ end }} c.Flag{{ $input.Container }}Id, opts...) + resp = {{ $action }}Result.GetResponse() + item = {{ $action }}Result.GetItem() {{ end }} {{ end }} {{ if eq $action "read" }} case "read": - result, err = {{ $input.Pkg }}Client.Read(c.Context, c.FlagId, opts...) + {{ $action }}Result, err = {{ $input.Pkg }}Client.Read(c.Context, c.FlagId, opts...) + resp = {{ $action }}Result.GetResponse() + item = {{ $action }}Result.GetItem() {{ end }} {{ if eq $action "update" }} case "update": - result, err = {{ $input.Pkg }}Client.Update(c.Context, c.FlagId, version, opts...) + {{ $action }}Result, err = {{ $input.Pkg }}Client.Update(c.Context, c.FlagId, version, opts...) + resp = {{ $action }}Result.GetResponse() + item = {{ $action }}Result.GetItem() {{ end }} {{ if eq $action "delete" }} case "delete": - result, err = {{ $input.Pkg }}Client.Delete(c.Context, c.FlagId, opts...) + {{ $action }}Result, err = {{ $input.Pkg }}Client.Delete(c.Context, c.FlagId, opts...) + resp = {{ $action }}Result.GetResponse() {{ end }} {{ if eq $action "list" }} case "list": - listResult, err = {{ $input.Pkg}}Client.List(c.Context, c.Flag{{ $input.Container }}Id, opts...) + {{ $action }}Result, err = {{ $input.Pkg}}Client.List(c.Context, c.Flag{{ $input.Container }}Id, opts...) + resp = {{ $action }}Result.GetResponse() + items = {{ $action }}Result.GetItems() {{ end }} {{ end }} } - result, err = executeExtra{{ camelCase .SubActionPrefix }}Actions(c, result, err, {{ .Pkg }}Client, version, opts) + resp, item, {{ if hasAction .StdActions "list" }}items, {{ end }}err = executeExtra{{ camelCase .SubActionPrefix }}Actions(c, resp, item, {{ if hasAction .StdActions "list" }}items, {{ end }}err, {{ .Pkg }}Client, version, opts) if err != nil { if apiErr := api.AsServerError(err); apiErr != nil { @@ -461,7 +476,7 @@ func (c *{{ camelCase .SubActionPrefix }}Command) Run(args []string) int { case "delete": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } @@ -475,13 +490,12 @@ func (c *{{ camelCase .SubActionPrefix }}Command) Run(args []string) int { case "list": switch base.Format(c.UI) { case "json": - if ok := c.PrintJsonItems(listResult); !ok { + if ok := c.PrintJsonItems(resp); !ok { return base.CommandCliError } case "table": - listedItems := listResult.GetItems().([]*{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}) - c.UI.Output(c.printListTable(listedItems)) + c.UI.Output(c.printListTable(items)) } return base.CommandSuccess @@ -491,10 +505,10 @@ func (c *{{ camelCase .SubActionPrefix }}Command) Run(args []string) int { switch base.Format(c.UI) { case "table": - c.UI.Output(printItemTable(result)) + c.UI.Output(printItemTable(item, resp)) case "json": - if ok := c.PrintJsonItem(result); !ok { + if ok := c.PrintJsonItem(resp); !ok { return base.CommandCliError } } @@ -510,8 +524,8 @@ var ( extra{{ camelCase .SubActionPrefix }}SynopsisFunc = func(*{{ camelCase .SubActionPrefix }}Command) string { return "" } extra{{ camelCase .SubActionPrefix }}FlagsFunc = func(*{{ camelCase .SubActionPrefix }}Command, *base.FlagSets, *base.FlagSet) {} extra{{ camelCase .SubActionPrefix }}FlagsHandlingFunc = func(*{{ camelCase .SubActionPrefix }}Command, *base.FlagSets, *[]{{ .Pkg }}.Option) bool { return true } - executeExtra{{ camelCase .SubActionPrefix }}Actions = func(_ *{{ camelCase .SubActionPrefix }}Command, inResult api.GenericResult, inErr error, _ *{{ .Pkg }}.Client, _ uint32, _ []{{ .Pkg }}.Option) (api.GenericResult, error) { - return inResult, inErr + executeExtra{{ camelCase .SubActionPrefix }}Actions = func(_ *{{ camelCase .SubActionPrefix }}Command, inResp *api.Response, inItem *{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}, {{ if hasAction .StdActions "list" }}inItems []*{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}, {{ end }}inErr error, _ *{{ .Pkg }}.Client, _ uint32, _ []{{ .Pkg }}.Option) (*api.Response, *{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}, {{ if hasAction .StdActions "list" }}[]*{{ $input.Pkg }}.{{ camelCase $input.ResourceType }}, {{ end }}error) { + return inResp, inItem, {{ if hasAction .StdActions "list" }}inItems, {{ end }}inErr } printCustom{{ camelCase .SubActionPrefix }}ActionOutput = func(*{{ camelCase .SubActionPrefix }}Command) (bool, error) { return false, nil } ) diff --git a/internal/tests/cluster/recursive_anon_listing_test.go b/internal/tests/cluster/recursive_anon_listing_test.go index e9e3903d6..661aee798 100644 --- a/internal/tests/cluster/recursive_anon_listing_test.go +++ b/internal/tests/cluster/recursive_anon_listing_test.go @@ -33,25 +33,25 @@ func TestListAnonymousRecursing(t *testing.T) { l, err := amClient.List(tc.Context(), scope.Global.String(), amapi.WithRecursive(true)) require.NoError(err) require.NotNil(l) - require.Len(l.GetItems().([]*amapi.AuthMethod), 3) + require.Len(l.GetItems(), 3) // Originally we also expect to see all three as anon user amClient.ApiClient().SetToken("") l, err = amClient.List(tc.Context(), scope.Global.String(), amapi.WithRecursive(true)) require.NoError(err) require.NotNil(l) - require.Len(l.GetItems().([]*amapi.AuthMethod), 3) + require.Len(l.GetItems(), 3) // Find the global roles and delete them rl, err := rolesClient.List(tc.Context(), scope.Global.String()) require.NoError(err) require.NotNil(rl) - require.Len(rl.GetItems().([]*rolesapi.Role), 2) + require.Len(rl.GetItems(), 2) // Find the non-admin one and delete that first adminIdx := 0 defaultIdx := 1 - roles := rl.GetItems().([]*rolesapi.Role) + roles := rl.GetItems() if strings.Contains(roles[0].Name, "Default") { adminIdx, defaultIdx = 1, 0 } @@ -68,7 +68,7 @@ func TestListAnonymousRecursing(t *testing.T) { l, err = amClient.List(tc.Context(), scope.Global.String(), amapi.WithRecursive(true)) require.NoError(err) require.NotNil(l) - ams := l.GetItems().([]*amapi.AuthMethod) + ams := l.GetItems() require.Len(ams, 1) require.Equal(orgScopeId, ams[0].ScopeId) }