@@ -21,24 +21,30 @@ import (
2121
2222const (
2323 serverIdFlag = "server-id"
24+ limitFlag = "limit"
2425)
2526
2627type inputModel struct {
2728 * globalflags.GlobalFlagModel
29+ Limit * int64
2830 ServerId * string
2931}
3032
3133func NewCmd (p * print.Printer ) * cobra.Command {
3234 cmd := & cobra.Command {
3335 Use : "list" ,
34- Short : "List all attached service accounts from a server" ,
35- Long : "List all attached service accounts from a server" ,
36+ Short : "List all attached service accounts for a server" ,
37+ Long : "List all attached service accounts for a server" ,
3638 Args : cobra .NoArgs ,
3739 Example : examples .Build (
3840 examples .NewExample (
3941 `List all attached service accounts for a server with ID "xxx"` ,
4042 "$ stackit beta server service-account list --server-id xxx" ,
4143 ),
44+ examples .NewExample (
45+ `List up to 10 attached service accounts for a server with ID "xxx"` ,
46+ "$ stackit beta server service-account list --server-id xxx --limit 10" ,
47+ ),
4248 examples .NewExample (
4349 `List all attached service accounts for a server with ID "xxx" in JSON format` ,
4450 "$ stackit beta server service-account list --server-id xxx --output-format json" ,
@@ -75,6 +81,10 @@ func NewCmd(p *print.Printer) *cobra.Command {
7581 return nil
7682 }
7783
84+ if model .Limit != nil && len (serviceAccounts ) > int (* model .Limit ) {
85+ serviceAccounts = serviceAccounts [:int (* model .Limit )]
86+ }
87+
7888 return outputResult (p , model .OutputFormat , * model .ServerId , serverName , serviceAccounts )
7989 },
8090 }
@@ -84,6 +94,7 @@ func NewCmd(p *print.Printer) *cobra.Command {
8494
8595func configureFlags (cmd * cobra.Command ) {
8696 cmd .Flags ().VarP (flags .UUIDFlag (), serverIdFlag , "s" , "Server ID" )
97+ cmd .Flags ().Int64 (limitFlag , 0 , "Maximum number of entries to list" )
8798
8899 err := flags .MarkFlagsRequired (cmd , serverIdFlag )
89100 cobra .CheckErr (err )
@@ -95,8 +106,17 @@ func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
95106 return nil , & errors.ProjectIdError {}
96107 }
97108
109+ limit := flags .FlagToInt64Pointer (p , cmd , limitFlag )
110+ if limit != nil && * limit < 1 {
111+ return nil , & errors.FlagValidationError {
112+ Flag : limitFlag ,
113+ Details : "must be greater than 0" ,
114+ }
115+ }
116+
98117 model := inputModel {
99118 GlobalFlagModel : globalFlags ,
119+ Limit : limit ,
100120 ServerId : flags .FlagToStringPointer (p , cmd , serverIdFlag ),
101121 }
102122
0 commit comments