// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2019-Present Datadog, Inc. package datadogV1 import ( _context "context" _nethttp "net/http" _neturl "net/url" "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) // SnapshotsApi service type type SnapshotsApi datadog.Service // GetGraphSnapshotOptionalParameters holds optional parameters for GetGraphSnapshot. type GetGraphSnapshotOptionalParameters struct { MetricQuery *string EventQuery *string GraphDef *string Title *string Height *int64 Width *int64 } // NewGetGraphSnapshotOptionalParameters creates an empty struct for parameters. func NewGetGraphSnapshotOptionalParameters() *GetGraphSnapshotOptionalParameters { this := GetGraphSnapshotOptionalParameters{} return &this } // WithMetricQuery sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithMetricQuery(metricQuery string) *GetGraphSnapshotOptionalParameters { r.MetricQuery = &metricQuery return r } // WithEventQuery sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithEventQuery(eventQuery string) *GetGraphSnapshotOptionalParameters { r.EventQuery = &eventQuery return r } // WithGraphDef sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithGraphDef(graphDef string) *GetGraphSnapshotOptionalParameters { r.GraphDef = &graphDef return r } // WithTitle sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithTitle(title string) *GetGraphSnapshotOptionalParameters { r.Title = &title return r } // WithHeight sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithHeight(height int64) *GetGraphSnapshotOptionalParameters { r.Height = &height return r } // WithWidth sets the corresponding parameter name and returns the struct. func (r *GetGraphSnapshotOptionalParameters) WithWidth(width int64) *GetGraphSnapshotOptionalParameters { r.Width = &width return r } // GetGraphSnapshot Take graph snapshots. // Take graph snapshots. // **Note**: When a snapshot is created, there is some delay before it is available. func (a *SnapshotsApi) GetGraphSnapshot(ctx _context.Context, start int64, end int64, o ...GetGraphSnapshotOptionalParameters) (GraphSnapshot, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet localVarPostBody interface{} localVarReturnValue GraphSnapshot optionalParams GetGraphSnapshotOptionalParameters ) if len(o) > 1 { return localVarReturnValue, nil, datadog.ReportError("only one argument of type GetGraphSnapshotOptionalParameters is allowed") } if len(o) == 1 { optionalParams = o[0] } localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v1.SnapshotsApi.GetGraphSnapshot") if err != nil { return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()} } localVarPath := localBasePath + "/api/v1/graph/snapshot" localVarHeaderParams := make(map[string]string) localVarQueryParams := _neturl.Values{} localVarFormParams := _neturl.Values{} localVarQueryParams.Add("start", datadog.ParameterToString(start, "")) localVarQueryParams.Add("end", datadog.ParameterToString(end, "")) if optionalParams.MetricQuery != nil { localVarQueryParams.Add("metric_query", datadog.ParameterToString(*optionalParams.MetricQuery, "")) } if optionalParams.EventQuery != nil { localVarQueryParams.Add("event_query", datadog.ParameterToString(*optionalParams.EventQuery, "")) } if optionalParams.GraphDef != nil { localVarQueryParams.Add("graph_def", datadog.ParameterToString(*optionalParams.GraphDef, "")) } if optionalParams.Title != nil { localVarQueryParams.Add("title", datadog.ParameterToString(*optionalParams.Title, "")) } if optionalParams.Height != nil { localVarQueryParams.Add("height", datadog.ParameterToString(*optionalParams.Height, "")) } if optionalParams.Width != nil { localVarQueryParams.Add("width", datadog.ParameterToString(*optionalParams.Width, "")) } localVarHeaderParams["Accept"] = "application/json" datadog.SetAuthKeys( ctx, &localVarHeaderParams, [2]string{"apiKeyAuth", "DD-API-KEY"}, [2]string{"appKeyAuth", "DD-APPLICATION-KEY"}, ) req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.Client.CallAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := datadog.ReadBody(localVarHTTPResponse) if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: localVarHTTPResponse.Status, } if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 429 { var v APIErrorResponse err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { return localVarReturnValue, localVarHTTPResponse, newErr } newErr.ErrorModel = v } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := datadog.GenericOpenAPIError{ ErrorBody: localVarBody, ErrorMessage: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // NewSnapshotsApi Returns NewSnapshotsApi. func NewSnapshotsApi(client *datadog.APIClient) *SnapshotsApi { return &SnapshotsApi{ Client: client, } }