@@ -17,6 +17,7 @@ const aliasesPageSize = 1000
1717type aliasesFetchOptions struct {
1818 includeLabels bool
1919 labelFilter []string
20+ status string
2021}
2122
2223func aliasesCmd () * cobra.Command {
@@ -43,6 +44,7 @@ func aliasesCmd() *cobra.Command {
4344 requested := aliasesFetchOptions {
4445 includeLabels : withLabels ,
4546 labelFilter : labelFilter ,
47+ status : "approved" ,
4648 }
4749
4850 data , err := fetchAllAliases (apiClient , orgID , requested )
@@ -71,10 +73,7 @@ func fetchAllAliases(apiClient *api.Client, orgID string, requested aliasesFetch
7173
7274 var combined api.ListUserResourceAliasesData
7375 for page := 1 ; ; page ++ {
74- pageData , err := apiClient .ListUserResourceAliases (orgID , page , aliasesPageSize , api.ListUserResourceAliasesOptions {
75- IncludeLabels : effective .includeLabels ,
76- LabelFilter : effective .labelFilter ,
77- })
76+ pageData , err := apiClient .ListUserResourceAliases (orgID , page , aliasesPageSize , listAliasesAPIOptions (effective ))
7877 if err != nil {
7978 return nil , err
8079 }
@@ -99,6 +98,18 @@ func fetchAllAliases(apiClient *api.Client, orgID string, requested aliasesFetch
9998}
10099
101100func resolveAliasesFetchOptions (apiClient * api.Client , orgID string , requested aliasesFetchOptions ) (aliasesFetchOptions , bool , error ) {
101+ effective , clientSideFilter , err := resolveAliasesFetchOptionsWithStatus (apiClient , orgID , requested )
102+ if err == nil || ! isBadRequest (err ) || requested .status == "" {
103+ return effective , clientSideFilter , err
104+ }
105+
106+ // Older servers reject unknown query params such as status; retry without it.
107+ withoutStatus := requested
108+ withoutStatus .status = ""
109+ return resolveAliasesFetchOptionsWithStatus (apiClient , orgID , withoutStatus )
110+ }
111+
112+ func resolveAliasesFetchOptionsWithStatus (apiClient * api.Client , orgID string , requested aliasesFetchOptions ) (aliasesFetchOptions , bool , error ) {
102113 effective := requested
103114
104115 if err := probeAliasesPage (apiClient , orgID , effective ); err == nil {
@@ -111,6 +122,7 @@ func resolveAliasesFetchOptions(apiClient *api.Client, orgID string, requested a
111122 effective = aliasesFetchOptions {
112123 includeLabels : true ,
113124 labelFilter : nil ,
125+ status : requested .status ,
114126 }
115127 if err := probeAliasesPage (apiClient , orgID , effective ); err == nil {
116128 return effective , true , nil
@@ -119,19 +131,24 @@ func resolveAliasesFetchOptions(apiClient *api.Client, orgID string, requested a
119131 }
120132 }
121133
122- effective = aliasesFetchOptions {}
134+ effective = aliasesFetchOptions {status : requested . status }
123135 if err := probeAliasesPage (apiClient , orgID , effective ); err != nil {
124136 return effective , false , err
125137 }
126138
127139 return effective , false , nil
128140}
129141
130- func probeAliasesPage ( apiClient * api. Client , orgID string , opts aliasesFetchOptions ) error {
131- _ , err := apiClient . ListUserResourceAliases ( orgID , 1 , 1 , api.ListUserResourceAliasesOptions {
142+ func listAliasesAPIOptions ( opts aliasesFetchOptions ) api. ListUserResourceAliasesOptions {
143+ return api.ListUserResourceAliasesOptions {
132144 IncludeLabels : opts .includeLabels ,
133145 LabelFilter : opts .labelFilter ,
134- })
146+ Status : opts .status ,
147+ }
148+ }
149+
150+ func probeAliasesPage (apiClient * api.Client , orgID string , opts aliasesFetchOptions ) error {
151+ _ , err := apiClient .ListUserResourceAliases (orgID , 1 , 1 , listAliasesAPIOptions (opts ))
135152 return err
136153}
137154
0 commit comments