@@ -19,6 +19,7 @@ type HttpClient interface {
1919type Client struct {
2020 AccessID string
2121 AccessKey string
22+ AuthJwt string
2223 Environment string
2324 BaseURL * url.URL
2425 IsInAdminMode bool
@@ -42,14 +43,18 @@ var endpoints = map[string]string{
4243
4344var rateLimiter = time .NewTicker (time .Minute / 240 )
4445
45- func createNewRequest (method , url string , body io.Reader , accessID string , accessKey string ) (* http.Request , error ) {
46+ func createNewRequest (method , url string , body io.Reader , accessID string , accessKey string , authJwt string ) (* http.Request , error ) {
4647 req , err := http .NewRequest (method , url , body )
4748 if err != nil {
4849 return nil , err
4950 }
5051 req .Header .Add ("Content-Type" , "application/json" )
5152 req .Header .Add ("User-Agent" , "SumoLogicTerraformProvider/" + ProviderVersion )
52- req .SetBasicAuth (accessID , accessKey )
53+ if authJwt == "" {
54+ req .SetBasicAuth (accessID , accessKey )
55+ } else {
56+ req .Header .Add ("Authorization" , "Bearer " + authJwt )
57+ }
5358 return req , nil
5459}
5560
@@ -66,7 +71,7 @@ func (s *Client) PostWithCookies(urlPath string, payload interface{}) ([]byte, [
6671 return nil , nil , err
6772 }
6873
69- req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey )
74+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey , s . AuthJwt )
7075 if err != nil {
7176 return nil , nil , err
7277 }
@@ -100,7 +105,7 @@ func (s *Client) GetWithCookies(urlPath string, cookies []*http.Cookie) ([]byte,
100105
101106 sumoURL := s .BaseURL .ResolveReference (relativeURL )
102107
103- req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s .AccessID , s .AccessKey )
108+ req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s .AccessID , s .AccessKey , s . AuthJwt )
104109 if err != nil {
105110 return nil , "" , err
106111 }
@@ -135,7 +140,7 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
135140 sumoURL := s .BaseURL .ResolveReference (relativeURL )
136141
137142 body , _ := json .Marshal (payload )
138- req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey )
143+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey , s . AuthJwt )
139144 if err != nil {
140145 return nil , err
141146 }
@@ -166,7 +171,7 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
166171func (s * Client ) PostRawPayload (urlPath string , payload string ) ([]byte , error ) {
167172 relativeURL , _ := url .Parse (urlPath )
168173 sumoURL := s .BaseURL .ResolveReference (relativeURL )
169- req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer ([]byte (payload )), s .AccessID , s .AccessKey )
174+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer ([]byte (payload )), s .AccessID , s .AccessKey , s . AuthJwt )
170175 if err != nil {
171176 return nil , err
172177 }
@@ -194,7 +199,7 @@ func (s *Client) Put(urlPath string, payload interface{}) ([]byte, error) {
194199 _ , etag , _ := s .Get (sumoURL .String ())
195200
196201 body , _ := json .Marshal (payload )
197- req , err := createNewRequest (http .MethodPut , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey )
202+ req , err := createNewRequest (http .MethodPut , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey , s . AuthJwt )
198203 if err != nil {
199204 return nil , err
200205 }
@@ -227,7 +232,7 @@ func (s *Client) Get(urlPath string) ([]byte, string, error) {
227232 relativeURL , _ := url .Parse (urlPath )
228233 sumoURL := s .BaseURL .ResolveReference (relativeURL )
229234
230- req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s .AccessID , s .AccessKey )
235+ req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s .AccessID , s .AccessKey , s . AuthJwt )
231236 if err != nil {
232237 return nil , "" , err
233238 }
@@ -261,7 +266,7 @@ func (s *Client) Delete(urlPath string) ([]byte, error) {
261266 relativeURL , _ := url .Parse (urlPath )
262267 sumoURL := s .BaseURL .ResolveReference (relativeURL )
263268
264- req , err := createNewRequest (http .MethodDelete , sumoURL .String (), nil , s .AccessID , s .AccessKey )
269+ req , err := createNewRequest (http .MethodDelete , sumoURL .String (), nil , s .AccessID , s .AccessKey , s . AuthJwt )
265270 if err != nil {
266271 return nil , err
267272 }
@@ -289,10 +294,11 @@ func (s *Client) Delete(urlPath string) ([]byte, error) {
289294 return d , nil
290295}
291296
292- func NewClient (accessID , accessKey , environment , base_url string , admin bool ) (* Client , error ) {
297+ func NewClient (accessID , accessKey , authJwt , environment , base_url string , admin bool ) (* Client , error ) {
293298 client := Client {
294299 AccessID : accessID ,
295300 AccessKey : accessKey ,
301+ AuthJwt : authJwt ,
296302 httpClient : http .DefaultClient ,
297303 Environment : environment ,
298304 IsInAdminMode : admin ,
0 commit comments