1 // Package discoverserviceapi provides primitives to interact with the openapi HTTP API.
3 // Code generated by github.com/deepmap/oapi-codegen version v1.10.1 DO NOT EDIT.
4 package discoverserviceapi
15 "github.com/deepmap/oapi-codegen/pkg/runtime"
18 // RequestEditorFn is the function signature for the RequestEditor callback function
19 type RequestEditorFn func(ctx context.Context, req *http.Request) error
21 // Doer performs HTTP requests.
23 // The standard http.Client implements this interface.
24 type HttpRequestDoer interface {
25 Do(req *http.Request) (*http.Response, error)
28 // Client which conforms to the OpenAPI3 specification for this service.
30 // The endpoint of the server conforming to this interface, with scheme,
31 // https://api.deepmap.com for example. This can contain a path relative
32 // to the server, such as https://api.deepmap.com/dev-test, and all the
33 // paths in the swagger spec will be appended to the server.
36 // Doer for performing requests, typically a *http.Client with any
37 // customized settings, such as certificate chains.
38 Client HttpRequestDoer
40 // A list of callbacks for modifying requests which are generated before sending over
42 RequestEditors []RequestEditorFn
45 // ClientOption allows setting custom parameters during construction
46 type ClientOption func(*Client) error
48 // Creates a new Client, with reasonable defaults
49 func NewClient(server string, opts ...ClientOption) (*Client, error) {
50 // create a client with sane default values
54 // mutate client and add all optional params
55 for _, o := range opts {
56 if err := o(&client); err != nil {
60 // ensure the server URL always has a trailing slash
61 if !strings.HasSuffix(client.Server, "/") {
64 // create httpClient, if not already present
65 if client.Client == nil {
66 client.Client = &http.Client{}
71 // WithHTTPClient allows overriding the default Doer, which is
72 // automatically created using http.Client. This is useful for tests.
73 func WithHTTPClient(doer HttpRequestDoer) ClientOption {
74 return func(c *Client) error {
80 // WithRequestEditorFn allows setting up a callback function, which will be
81 // called right before sending the request. This can be used to mutate the request.
82 func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
83 return func(c *Client) error {
84 c.RequestEditors = append(c.RequestEditors, fn)
89 // The interface specification for the client above.
90 type ClientInterface interface {
91 // GetAllServiceAPIs request
92 GetAllServiceAPIs(ctx context.Context, params *GetAllServiceAPIsParams, reqEditors ...RequestEditorFn) (*http.Response, error)
95 func (c *Client) GetAllServiceAPIs(ctx context.Context, params *GetAllServiceAPIsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
96 req, err := NewGetAllServiceAPIsRequest(c.Server, params)
100 req = req.WithContext(ctx)
101 if err := c.applyEditors(ctx, req, reqEditors); err != nil {
104 return c.Client.Do(req)
107 // NewGetAllServiceAPIsRequest generates requests for GetAllServiceAPIs
108 func NewGetAllServiceAPIsRequest(server string, params *GetAllServiceAPIsParams) (*http.Request, error) {
111 serverURL, err := url.Parse(server)
116 operationPath := fmt.Sprintf("/allServiceAPIs")
117 if operationPath[0] == '/' {
118 operationPath = "." + operationPath
121 queryURL, err := serverURL.Parse(operationPath)
126 queryValues := queryURL.Query()
128 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "api-invoker-id", runtime.ParamLocationQuery, params.ApiInvokerId); err != nil {
130 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
133 for k, v := range parsed {
134 for _, v2 := range v {
135 queryValues.Add(k, v2)
140 if params.ApiName != nil {
142 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "api-name", runtime.ParamLocationQuery, *params.ApiName); err != nil {
144 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
147 for k, v := range parsed {
148 for _, v2 := range v {
149 queryValues.Add(k, v2)
156 if params.ApiVersion != nil {
158 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "api-version", runtime.ParamLocationQuery, *params.ApiVersion); err != nil {
160 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
163 for k, v := range parsed {
164 for _, v2 := range v {
165 queryValues.Add(k, v2)
172 if params.CommType != nil {
174 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "comm-type", runtime.ParamLocationQuery, *params.CommType); err != nil {
176 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
179 for k, v := range parsed {
180 for _, v2 := range v {
181 queryValues.Add(k, v2)
188 if params.Protocol != nil {
190 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "protocol", runtime.ParamLocationQuery, *params.Protocol); err != nil {
192 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
195 for k, v := range parsed {
196 for _, v2 := range v {
197 queryValues.Add(k, v2)
204 if params.AefId != nil {
206 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "aef-id", runtime.ParamLocationQuery, *params.AefId); err != nil {
208 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
211 for k, v := range parsed {
212 for _, v2 := range v {
213 queryValues.Add(k, v2)
220 if params.DataFormat != nil {
222 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "data-format", runtime.ParamLocationQuery, *params.DataFormat); err != nil {
224 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
227 for k, v := range parsed {
228 for _, v2 := range v {
229 queryValues.Add(k, v2)
236 if params.ApiCat != nil {
238 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "api-cat", runtime.ParamLocationQuery, *params.ApiCat); err != nil {
240 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
243 for k, v := range parsed {
244 for _, v2 := range v {
245 queryValues.Add(k, v2)
252 if params.PreferredAefLoc != nil {
254 if queryParamBuf, err := json.Marshal(*params.PreferredAefLoc); err != nil {
257 queryValues.Add("preferred-aef-loc", string(queryParamBuf))
262 if params.SupportedFeatures != nil {
264 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "supported-features", runtime.ParamLocationQuery, *params.SupportedFeatures); err != nil {
266 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
269 for k, v := range parsed {
270 for _, v2 := range v {
271 queryValues.Add(k, v2)
278 if params.ApiSupportedFeatures != nil {
280 if queryFrag, err := runtime.StyleParamWithLocation("form", true, "api-supported-features", runtime.ParamLocationQuery, *params.ApiSupportedFeatures); err != nil {
282 } else if parsed, err := url.ParseQuery(queryFrag); err != nil {
285 for k, v := range parsed {
286 for _, v2 := range v {
287 queryValues.Add(k, v2)
294 queryURL.RawQuery = queryValues.Encode()
296 req, err := http.NewRequest("GET", queryURL.String(), nil)
304 func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error {
305 for _, r := range c.RequestEditors {
306 if err := r(ctx, req); err != nil {
310 for _, r := range additionalEditors {
311 if err := r(ctx, req); err != nil {
318 // ClientWithResponses builds on ClientInterface to offer response payloads
319 type ClientWithResponses struct {
323 // NewClientWithResponses creates a new ClientWithResponses, which wraps
324 // Client with return type handling
325 func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) {
326 client, err := NewClient(server, opts...)
330 return &ClientWithResponses{client}, nil
333 // WithBaseURL overrides the baseURL.
334 func WithBaseURL(baseURL string) ClientOption {
335 return func(c *Client) error {
336 newBaseURL, err := url.Parse(baseURL)
340 c.Server = newBaseURL.String()
345 // ClientWithResponsesInterface is the interface specification for the client with responses above.
346 type ClientWithResponsesInterface interface {
347 // GetAllServiceAPIs request
348 GetAllServiceAPIsWithResponse(ctx context.Context, params *GetAllServiceAPIsParams, reqEditors ...RequestEditorFn) (*GetAllServiceAPIsResponse, error)
351 type GetAllServiceAPIsResponse struct {
353 HTTPResponse *http.Response
354 JSON200 *DiscoveredAPIs
357 // Status returns HTTPResponse.Status
358 func (r GetAllServiceAPIsResponse) Status() string {
359 if r.HTTPResponse != nil {
360 return r.HTTPResponse.Status
362 return http.StatusText(0)
365 // StatusCode returns HTTPResponse.StatusCode
366 func (r GetAllServiceAPIsResponse) StatusCode() int {
367 if r.HTTPResponse != nil {
368 return r.HTTPResponse.StatusCode
373 // GetAllServiceAPIsWithResponse request returning *GetAllServiceAPIsResponse
374 func (c *ClientWithResponses) GetAllServiceAPIsWithResponse(ctx context.Context, params *GetAllServiceAPIsParams, reqEditors ...RequestEditorFn) (*GetAllServiceAPIsResponse, error) {
375 rsp, err := c.GetAllServiceAPIs(ctx, params, reqEditors...)
379 return ParseGetAllServiceAPIsResponse(rsp)
382 // ParseGetAllServiceAPIsResponse parses an HTTP response from a GetAllServiceAPIsWithResponse call
383 func ParseGetAllServiceAPIsResponse(rsp *http.Response) (*GetAllServiceAPIsResponse, error) {
384 bodyBytes, err := ioutil.ReadAll(rsp.Body)
385 defer func() { _ = rsp.Body.Close() }()
390 response := &GetAllServiceAPIsResponse{
396 case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
397 var dest DiscoveredAPIs
398 if err := json.Unmarshal(bodyBytes, &dest); err != nil {
401 response.JSON200 = &dest