@@ -120,6 +120,78 @@ func PerformSearch(apiClient sailpoint.APIClient, search sailpointsdk.Search) (S
120
120
return SearchResults , nil
121
121
}
122
122
123
+ func PerformSearchWithLimit (apiClient sailpoint.APIClient , search sailpointsdk.Search , limit int32 ) (SearchResults , error ) {
124
+ var SearchResults SearchResults
125
+
126
+ if limit == 0 {
127
+ limit = 500
128
+ }
129
+
130
+ ctx := context .TODO ()
131
+ resp , r , err := apiClient .V3 .SearchAPI .SearchPost (ctx ).Search (search ).Limit (limit ).Execute ()
132
+ if err != nil {
133
+ fmt .Fprintf (os .Stderr , "Error: %v\n " , err )
134
+ fmt .Fprintf (os .Stderr , "Full HTTP response: %v\n " , r )
135
+ }
136
+
137
+ log .Debug ("Search complete" )
138
+
139
+ for i := 0 ; i < len (resp ); i ++ {
140
+ entry := resp [i ]
141
+ switch entry ["_type" ] {
142
+ case "accountactivity" :
143
+ var AccountActivity AccountActivity
144
+ err := mapstructure .Decode (entry , & AccountActivity )
145
+ if err != nil {
146
+ return SearchResults , err
147
+ }
148
+ SearchResults .AccountActivities = append (SearchResults .AccountActivities , AccountActivity )
149
+
150
+ case "accessprofile" :
151
+ var AccessProfile AccessProfile
152
+ err := mapstructure .Decode (entry , & AccessProfile )
153
+ if err != nil {
154
+ return SearchResults , err
155
+ }
156
+ SearchResults .AccessProfiles = append (SearchResults .AccessProfiles , AccessProfile )
157
+
158
+ case "entitlement" :
159
+ var Entitlement Entitlement
160
+ err := mapstructure .Decode (entry , & Entitlement )
161
+ if err != nil {
162
+ return SearchResults , err
163
+ }
164
+ SearchResults .Entitlements = append (SearchResults .Entitlements , Entitlement )
165
+
166
+ case "event" :
167
+ var Event Event
168
+ err := mapstructure .Decode (entry , & Event )
169
+ if err != nil {
170
+ return SearchResults , err
171
+ }
172
+ SearchResults .Events = append (SearchResults .Events , Event )
173
+
174
+ case "identity" :
175
+ var Identity Identity
176
+ err := mapstructure .Decode (entry , & Identity )
177
+ if err != nil {
178
+ return SearchResults , err
179
+ }
180
+ SearchResults .Identities = append (SearchResults .Identities , Identity )
181
+
182
+ case "role" :
183
+ var Role Role
184
+ err := mapstructure .Decode (entry , & Role )
185
+ if err != nil {
186
+ return SearchResults , err
187
+ }
188
+ SearchResults .Roles = append (SearchResults .Roles , Role )
189
+ }
190
+ }
191
+
192
+ return SearchResults , nil
193
+ }
194
+
123
195
func IterateIndices (SearchResults SearchResults , searchQuery string , folderPath string , outputTypes []string ) error {
124
196
if len (SearchResults .AccountActivities ) > 0 {
125
197
fileName := "query=" + searchQuery + "&indices=AccountActivities"
0 commit comments