From 85fd82a933c65c9c3183ecd1a63d5c062659ccad Mon Sep 17 00:00:00 2001 From: Max Twardowski Date: Tue, 10 Sep 2024 09:43:28 +0200 Subject: [PATCH 1/2] mark reservations resource as deprecated --- castai/resource_reservations.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/castai/resource_reservations.go b/castai/resource_reservations.go index d24b2a74..8bfa1026 100644 --- a/castai/resource_reservations.go +++ b/castai/resource_reservations.go @@ -27,7 +27,8 @@ func resourceReservations() *schema.Resource { Importer: &schema.ResourceImporter{ StateContext: reservationsStateImporter, }, - Description: "Reservation represents cloud service provider reserved instances that can be used by CAST AI autoscaler.", + Description: "Reservation represents cloud service provider reserved instances that can be used by CAST AI autoscaler.", + DeprecationMessage: "Use castai_commitments resource instead.", Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(2 * time.Minute), From 7f3d6fbcec21a151eb04168b5fe4bc3a152f8a31 Mon Sep 17 00:00:00 2001 From: Max Twardowski Date: Tue, 10 Sep 2024 09:47:45 +0200 Subject: [PATCH 2/2] generate sdk --- castai/sdk/api.gen.go | 98 +++++++++++-- castai/sdk/client.gen.go | 292 ++++++++++++++++++++++++++++++++++++++ castai/sdk/mock/client.go | 70 +++++++++ 3 files changed, 451 insertions(+), 9 deletions(-) diff --git a/castai/sdk/api.gen.go b/castai/sdk/api.gen.go index fb063835..93b71d58 100644 --- a/castai/sdk/api.gen.go +++ b/castai/sdk/api.gen.go @@ -872,7 +872,8 @@ type CastaiInventoryV1beta1InstanceTypeAggregate struct { Region *string `json:"region,omitempty"` // Spot defines if the instance type is a spot instance. - Spot *bool `json:"spot,omitempty"` + Spot *bool `json:"spot,omitempty"` + UsageDistribution *CastaiInventoryV1beta1UsageDistribution `json:"usageDistribution,omitempty"` // Vcpu available on the instance type. Vcpu *string `json:"vcpu,omitempty"` @@ -913,6 +914,18 @@ type CastaiInventoryV1beta1InstanceZone struct { Unavailable *bool `json:"unavailable,omitempty"` } +// CastaiInventoryV1beta1ListRegionsResponse defines model for castai.inventory.v1beta1.ListRegionsResponse. +type CastaiInventoryV1beta1ListRegionsResponse struct { + NextPageToken *string `json:"nextPageToken,omitempty"` + Regions *[]CastaiInventoryV1beta1Region `json:"regions,omitempty"` +} + +// CastaiInventoryV1beta1ListZonesResponse defines model for castai.inventory.v1beta1.ListZonesResponse. +type CastaiInventoryV1beta1ListZonesResponse struct { + NextPageToken *string `json:"nextPageToken,omitempty"` + Zones *[]CastaiInventoryV1beta1Zone `json:"zones,omitempty"` +} + // Describes the network settings for the instance type. type CastaiInventoryV1beta1NetworkInfo struct { // Base bandwidth in Mbps. @@ -942,6 +955,29 @@ type CastaiInventoryV1beta1OverwriteReservationsResponse struct { Reservations *[]CastaiInventoryV1beta1ReservationDetails `json:"reservations,omitempty"` } +// CastaiInventoryV1beta1Region defines model for castai.inventory.v1beta1.Region. +type CastaiInventoryV1beta1Region struct { + Category *string `json:"category,omitempty"` + CreateTime *time.Time `json:"createTime,omitempty"` + Csp *string `json:"csp,omitempty"` + DisplayName *string `json:"displayName,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + UnavailabilityTime *time.Time `json:"unavailabilityTime"` + UpdateTime *time.Time `json:"updateTime,omitempty"` + Zones *[]CastaiInventoryV1beta1RegionZone `json:"zones,omitempty"` +} + +// CastaiInventoryV1beta1RegionZone defines model for castai.inventory.v1beta1.Region.Zone. +type CastaiInventoryV1beta1RegionZone struct { + CreateTime *time.Time `json:"createTime,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + UnavailabilityTime *time.Time `json:"unavailabilityTime"` + UpdateTime *time.Time `json:"updateTime,omitempty"` + ZoneId *string `json:"zoneId,omitempty"` +} + // CastaiInventoryV1beta1ReplaceCommitmentAssignmentsResponse defines model for castai.inventory.v1beta1.ReplaceCommitmentAssignmentsResponse. type CastaiInventoryV1beta1ReplaceCommitmentAssignmentsResponse struct { Assignments *[]CastaiInventoryV1beta1CommitmentAssignment `json:"assignments,omitempty"` @@ -1053,6 +1089,17 @@ type CastaiInventoryV1beta1UsageDistribution struct { Memory *float64 `json:"memory,omitempty"` } +// CastaiInventoryV1beta1Zone defines model for castai.inventory.v1beta1.Zone. +type CastaiInventoryV1beta1Zone struct { + CreateTime *time.Time `json:"createTime,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Region *string `json:"region,omitempty"` + UnavailabilityTime *time.Time `json:"unavailabilityTime"` + UpdateTime *time.Time `json:"updateTime,omitempty"` + ZoneId *string `json:"zoneId,omitempty"` +} + // Operation object. type CastaiOperationsV1beta1Operation struct { // Operation creation timestamp in RFC3339Nano format. @@ -1326,8 +1373,13 @@ type CastaiUsersV1beta1NewMembership struct { // CastaiUsersV1beta1NewMembershipByEmail defines model for castai.users.v1beta1.NewMembershipByEmail. type CastaiUsersV1beta1NewMembershipByEmail struct { + // list of the group IDs for which new user should be added. + GroupIds *[]string `json:"groupIds,omitempty"` + // role of the invited person. - Role *string `json:"role,omitempty"` + Role *string `json:"role,omitempty"` + + // string roleID. RoleId *string `json:"roleId,omitempty"` // email of the invited person. @@ -1400,7 +1452,8 @@ type CastaiUsersV1beta1User struct { Id *string `json:"id,omitempty"` // (required) readable user name, e.g. "John Doe". - Name string `json:"name"` + Name string `json:"name"` + Oid *string `json:"oid"` // (optional) refer_id is a unique identifier of the user in the referral partner system. ReferId *int32 `json:"referId"` @@ -2081,6 +2134,9 @@ type NodeconfigV1AKSConfig struct { // List of supported image families (OSes) for AKS. ImageFamily *NodeconfigV1AKSConfigImageFamily `json:"imageFamily,omitempty"` + // List of load balancers to be used for the cluster. + LoadBalancers *[]NodeconfigV1AKSConfigLoadBalancers `json:"loadBalancers,omitempty"` + // Maximum number of pods that can be run on a node, which affects how many IP addresses you will need for each node. // Defaults to 30. Values between 10 and 250 are allowed. // Setting values above 110 will require specific CNI configuration. Please refer to Microsoft documentation for additional guidance. @@ -2093,6 +2149,20 @@ type NodeconfigV1AKSConfig struct { // List of supported image families (OSes) for AKS. type NodeconfigV1AKSConfigImageFamily string +// NodeconfigV1AKSConfigLoadBalancers defines model for nodeconfig.v1.AKSConfig.LoadBalancers. +type NodeconfigV1AKSConfigLoadBalancers struct { + // List of backend pools to be used for the load balancer. + IpBasedBackendPools *[]NodeconfigV1AKSConfigLoadBalancersIPBasedBackendPool `json:"ipBasedBackendPools,omitempty"` + + // Name of the load balancer. + Name *string `json:"name,omitempty"` +} + +// NodeconfigV1AKSConfigLoadBalancersIPBasedBackendPool defines model for nodeconfig.v1.AKSConfig.LoadBalancers.IPBasedBackendPool. +type NodeconfigV1AKSConfigLoadBalancersIPBasedBackendPool struct { + Name *string `json:"name,omitempty"` +} + // OsDiskType represent possible values for AKS node os disk type(this is subset of all available Azure disk types). type NodeconfigV1AKSConfigOsDiskType string @@ -3204,11 +3274,9 @@ type WorkloadoptimizationV1DeleteWorkloadScalingPolicyResponse = map[string]inte // WorkloadoptimizationV1Event defines model for workloadoptimization.v1.Event. type WorkloadoptimizationV1Event struct { - ConfigurationChanged *WorkloadoptimizationV1ConfigurationChangedEvent `json:"configurationChanged,omitempty"` - ConfigurationChangedV2 *WorkloadoptimizationV1ConfigurationChangedEventV2 `json:"configurationChangedV2,omitempty"` - OomKill *WorkloadoptimizationV1OOMKillEvent `json:"oomKill,omitempty"` - - // TODO: WOOP-424, cleanup legacy event after UI switches to RecommendedRequestsChangedEvent. + ConfigurationChanged *WorkloadoptimizationV1ConfigurationChangedEvent `json:"configurationChanged,omitempty"` + ConfigurationChangedV2 *WorkloadoptimizationV1ConfigurationChangedEventV2 `json:"configurationChangedV2,omitempty"` + OomKill *WorkloadoptimizationV1OOMKillEvent `json:"oomKill,omitempty"` RecommendationApplied *WorkloadoptimizationV1RecommendationAppliedEvent `json:"recommendationApplied,omitempty"` RecommendedPodCountChanged *WorkloadoptimizationV1RecommendedPodCountChangedEvent `json:"recommendedPodCountChanged,omitempty"` RecommendedRequestsChanged *WorkloadoptimizationV1RecommendedRequestsChangedEvent `json:"recommendedRequestsChanged,omitempty"` @@ -3378,7 +3446,7 @@ type WorkloadoptimizationV1PodMetrics struct { PodCountMin float64 `json:"podCountMin"` } -// TODO: WOOP-424, cleanup legacy event after UI switches to RecommendedRequestsChangedEvent. +// WorkloadoptimizationV1RecommendationAppliedEvent defines model for workloadoptimization.v1.RecommendationAppliedEvent. type WorkloadoptimizationV1RecommendationAppliedEvent struct { ApplyType WorkloadoptimizationV1ApplyType `json:"applyType"` Current WorkloadoptimizationV1RecommendationAppliedEventChange `json:"current"` @@ -3967,6 +4035,12 @@ type ScheduledRebalancingAPIUpdateRebalancingScheduleParams struct { Id *string `form:"id,omitempty" json:"id,omitempty"` } +// InventoryAPIListRegionsParams defines parameters for InventoryAPIListRegions. +type InventoryAPIListRegionsParams struct { + PageSize *int32 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + PageToken *string `form:"pageToken,omitempty" json:"pageToken,omitempty"` +} + // CommitmentsAPICreateCommitmentAssignmentParams defines parameters for CommitmentsAPICreateCommitmentAssignment. type CommitmentsAPICreateCommitmentAssignmentParams struct { // Cluster ID @@ -4086,6 +4160,12 @@ type WorkloadOptimizationAPIGetInstallCmdParams struct { ClusterId string `form:"clusterId" json:"clusterId"` } +// InventoryAPIListZonesParams defines parameters for InventoryAPIListZones. +type InventoryAPIListZonesParams struct { + PageSize *int32 `form:"pageSize,omitempty" json:"pageSize,omitempty"` + PageToken *string `form:"pageToken,omitempty" json:"pageToken,omitempty"` +} + // WorkloadOptimizationAPIUpdateWorkloadV2JSONBody defines parameters for WorkloadOptimizationAPIUpdateWorkloadV2. type WorkloadOptimizationAPIUpdateWorkloadV2JSONBody = WorkloadoptimizationV1UpdateWorkloadV2 diff --git a/castai/sdk/client.gen.go b/castai/sdk/client.gen.go index f540eb6a..10aacb31 100644 --- a/castai/sdk/client.gen.go +++ b/castai/sdk/client.gen.go @@ -399,6 +399,9 @@ type ClientInterface interface { // ScheduledRebalancingAPIGetRebalancingSchedule request ScheduledRebalancingAPIGetRebalancingSchedule(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + // InventoryAPIListRegions request + InventoryAPIListRegions(ctx context.Context, params *InventoryAPIListRegionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // CommitmentsAPIGetCommitmentsAssignments request CommitmentsAPIGetCommitmentsAssignments(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -524,6 +527,9 @@ type ClientInterface interface { // WorkloadOptimizationAPIGetInstallScript request WorkloadOptimizationAPIGetInstallScript(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + // InventoryAPIListZones request + InventoryAPIListZones(ctx context.Context, params *InventoryAPIListZonesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + // WorkloadOptimizationAPIUpdateWorkloadV2 request with any body WorkloadOptimizationAPIUpdateWorkloadV2WithBody(ctx context.Context, clusterId string, workloadId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -1886,6 +1892,18 @@ func (c *Client) ScheduledRebalancingAPIGetRebalancingSchedule(ctx context.Conte return c.Client.Do(req) } +func (c *Client) InventoryAPIListRegions(ctx context.Context, params *InventoryAPIListRegionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewInventoryAPIListRegionsRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) CommitmentsAPIGetCommitmentsAssignments(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewCommitmentsAPIGetCommitmentsAssignmentsRequest(c.Server) if err != nil { @@ -2426,6 +2444,18 @@ func (c *Client) WorkloadOptimizationAPIGetInstallScript(ctx context.Context, re return c.Client.Do(req) } +func (c *Client) InventoryAPIListZones(ctx context.Context, params *InventoryAPIListZonesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewInventoryAPIListZonesRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) WorkloadOptimizationAPIUpdateWorkloadV2WithBody(ctx context.Context, clusterId string, workloadId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewWorkloadOptimizationAPIUpdateWorkloadV2RequestWithBody(c.Server, clusterId, workloadId, contentType, body) if err != nil { @@ -6230,6 +6260,69 @@ func NewScheduledRebalancingAPIGetRebalancingScheduleRequest(server string, id s return req, nil } +// NewInventoryAPIListRegionsRequest generates requests for InventoryAPIListRegions +func NewInventoryAPIListRegionsRequest(server string, params *InventoryAPIListRegionsParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/regions") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "pageSize", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageToken != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "pageToken", runtime.ParamLocationQuery, *params.PageToken); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + // NewCommitmentsAPIGetCommitmentsAssignmentsRequest generates requests for CommitmentsAPIGetCommitmentsAssignments func NewCommitmentsAPIGetCommitmentsAssignmentsRequest(server string) (*http.Request, error) { var err error @@ -7872,6 +7965,69 @@ func NewWorkloadOptimizationAPIGetInstallScriptRequest(server string) (*http.Req return req, nil } +// NewInventoryAPIListZonesRequest generates requests for InventoryAPIListZones +func NewInventoryAPIListZonesRequest(server string, params *InventoryAPIListZonesParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/zones") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.PageSize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "pageSize", runtime.ParamLocationQuery, *params.PageSize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.PageToken != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "pageToken", runtime.ParamLocationQuery, *params.PageToken); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + // NewWorkloadOptimizationAPIUpdateWorkloadV2Request calls the generic WorkloadOptimizationAPIUpdateWorkloadV2 builder with application/json body func NewWorkloadOptimizationAPIUpdateWorkloadV2Request(server string, clusterId string, workloadId string, body WorkloadOptimizationAPIUpdateWorkloadV2JSONRequestBody) (*http.Request, error) { var bodyReader io.Reader @@ -8278,6 +8434,9 @@ type ClientWithResponsesInterface interface { // ScheduledRebalancingAPIGetRebalancingSchedule request ScheduledRebalancingAPIGetRebalancingScheduleWithResponse(ctx context.Context, id string) (*ScheduledRebalancingAPIGetRebalancingScheduleResponse, error) + // InventoryAPIListRegions request + InventoryAPIListRegionsWithResponse(ctx context.Context, params *InventoryAPIListRegionsParams) (*InventoryAPIListRegionsResponse, error) + // CommitmentsAPIGetCommitmentsAssignments request CommitmentsAPIGetCommitmentsAssignmentsWithResponse(ctx context.Context) (*CommitmentsAPIGetCommitmentsAssignmentsResponse, error) @@ -8403,6 +8562,9 @@ type ClientWithResponsesInterface interface { // WorkloadOptimizationAPIGetInstallScript request WorkloadOptimizationAPIGetInstallScriptWithResponse(ctx context.Context) (*WorkloadOptimizationAPIGetInstallScriptResponse, error) + // InventoryAPIListZones request + InventoryAPIListZonesWithResponse(ctx context.Context, params *InventoryAPIListZonesParams) (*InventoryAPIListZonesResponse, error) + // WorkloadOptimizationAPIUpdateWorkloadV2 request with any body WorkloadOptimizationAPIUpdateWorkloadV2WithBodyWithResponse(ctx context.Context, clusterId string, workloadId string, contentType string, body io.Reader) (*WorkloadOptimizationAPIUpdateWorkloadV2Response, error) @@ -10907,6 +11069,36 @@ func (r ScheduledRebalancingAPIGetRebalancingScheduleResponse) GetBody() []byte // TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 +type InventoryAPIListRegionsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *CastaiInventoryV1beta1ListRegionsResponse +} + +// Status returns HTTPResponse.Status +func (r InventoryAPIListRegionsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r InventoryAPIListRegionsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 +// Body returns body of byte array +func (r InventoryAPIListRegionsResponse) GetBody() []byte { + return r.Body +} + +// TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 + type CommitmentsAPIGetCommitmentsAssignmentsResponse struct { Body []byte HTTPResponse *http.Response @@ -11953,6 +12145,36 @@ func (r WorkloadOptimizationAPIGetInstallScriptResponse) GetBody() []byte { // TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 +type InventoryAPIListZonesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *CastaiInventoryV1beta1ListZonesResponse +} + +// Status returns HTTPResponse.Status +func (r InventoryAPIListZonesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r InventoryAPIListZonesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 +// Body returns body of byte array +func (r InventoryAPIListZonesResponse) GetBody() []byte { + return r.Body +} + +// TODO: to have common interface. https://github.com/deepmap/oapi-codegen/issues/240 + type WorkloadOptimizationAPIUpdateWorkloadV2Response struct { Body []byte HTTPResponse *http.Response @@ -12970,6 +13192,15 @@ func (c *ClientWithResponses) ScheduledRebalancingAPIGetRebalancingScheduleWithR return ParseScheduledRebalancingAPIGetRebalancingScheduleResponse(rsp) } +// InventoryAPIListRegionsWithResponse request returning *InventoryAPIListRegionsResponse +func (c *ClientWithResponses) InventoryAPIListRegionsWithResponse(ctx context.Context, params *InventoryAPIListRegionsParams) (*InventoryAPIListRegionsResponse, error) { + rsp, err := c.InventoryAPIListRegions(ctx, params) + if err != nil { + return nil, err + } + return ParseInventoryAPIListRegionsResponse(rsp) +} + // CommitmentsAPIGetCommitmentsAssignmentsWithResponse request returning *CommitmentsAPIGetCommitmentsAssignmentsResponse func (c *ClientWithResponses) CommitmentsAPIGetCommitmentsAssignmentsWithResponse(ctx context.Context) (*CommitmentsAPIGetCommitmentsAssignmentsResponse, error) { rsp, err := c.CommitmentsAPIGetCommitmentsAssignments(ctx) @@ -13365,6 +13596,15 @@ func (c *ClientWithResponses) WorkloadOptimizationAPIGetInstallScriptWithRespons return ParseWorkloadOptimizationAPIGetInstallScriptResponse(rsp) } +// InventoryAPIListZonesWithResponse request returning *InventoryAPIListZonesResponse +func (c *ClientWithResponses) InventoryAPIListZonesWithResponse(ctx context.Context, params *InventoryAPIListZonesParams) (*InventoryAPIListZonesResponse, error) { + rsp, err := c.InventoryAPIListZones(ctx, params) + if err != nil { + return nil, err + } + return ParseInventoryAPIListZonesResponse(rsp) +} + // WorkloadOptimizationAPIUpdateWorkloadV2WithBodyWithResponse request with arbitrary body returning *WorkloadOptimizationAPIUpdateWorkloadV2Response func (c *ClientWithResponses) WorkloadOptimizationAPIUpdateWorkloadV2WithBodyWithResponse(ctx context.Context, clusterId string, workloadId string, contentType string, body io.Reader) (*WorkloadOptimizationAPIUpdateWorkloadV2Response, error) { rsp, err := c.WorkloadOptimizationAPIUpdateWorkloadV2WithBody(ctx, clusterId, workloadId, contentType, body) @@ -15530,6 +15770,32 @@ func ParseScheduledRebalancingAPIGetRebalancingScheduleResponse(rsp *http.Respon return response, nil } +// ParseInventoryAPIListRegionsResponse parses an HTTP response from a InventoryAPIListRegionsWithResponse call +func ParseInventoryAPIListRegionsResponse(rsp *http.Response) (*InventoryAPIListRegionsResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer rsp.Body.Close() + if err != nil { + return nil, err + } + + response := &InventoryAPIListRegionsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest CastaiInventoryV1beta1ListRegionsResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + // ParseCommitmentsAPIGetCommitmentsAssignmentsResponse parses an HTTP response from a CommitmentsAPIGetCommitmentsAssignmentsWithResponse call func ParseCommitmentsAPIGetCommitmentsAssignmentsResponse(rsp *http.Response) (*CommitmentsAPIGetCommitmentsAssignmentsResponse, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) @@ -16400,6 +16666,32 @@ func ParseWorkloadOptimizationAPIGetInstallScriptResponse(rsp *http.Response) (* return response, nil } +// ParseInventoryAPIListZonesResponse parses an HTTP response from a InventoryAPIListZonesWithResponse call +func ParseInventoryAPIListZonesResponse(rsp *http.Response) (*InventoryAPIListZonesResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer rsp.Body.Close() + if err != nil { + return nil, err + } + + response := &InventoryAPIListZonesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest CastaiInventoryV1beta1ListZonesResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + // ParseWorkloadOptimizationAPIUpdateWorkloadV2Response parses an HTTP response from a WorkloadOptimizationAPIUpdateWorkloadV2WithResponse call func ParseWorkloadOptimizationAPIUpdateWorkloadV2Response(rsp *http.Response) (*WorkloadOptimizationAPIUpdateWorkloadV2Response, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) diff --git a/castai/sdk/mock/client.go b/castai/sdk/mock/client.go index 6fa4398d..b185f7f9 100644 --- a/castai/sdk/mock/client.go +++ b/castai/sdk/mock/client.go @@ -1375,6 +1375,46 @@ func (mr *MockClientInterfaceMockRecorder) InventoryAPIGetReservationsBalance(ct return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIGetReservationsBalance", reflect.TypeOf((*MockClientInterface)(nil).InventoryAPIGetReservationsBalance), varargs...) } +// InventoryAPIListRegions mocks base method. +func (m *MockClientInterface) InventoryAPIListRegions(ctx context.Context, params *sdk.InventoryAPIListRegionsParams, reqEditors ...sdk.RequestEditorFn) (*http.Response, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, params} + for _, a := range reqEditors { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "InventoryAPIListRegions", varargs...) + ret0, _ := ret[0].(*http.Response) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InventoryAPIListRegions indicates an expected call of InventoryAPIListRegions. +func (mr *MockClientInterfaceMockRecorder) InventoryAPIListRegions(ctx, params interface{}, reqEditors ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, params}, reqEditors...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIListRegions", reflect.TypeOf((*MockClientInterface)(nil).InventoryAPIListRegions), varargs...) +} + +// InventoryAPIListZones mocks base method. +func (m *MockClientInterface) InventoryAPIListZones(ctx context.Context, params *sdk.InventoryAPIListZonesParams, reqEditors ...sdk.RequestEditorFn) (*http.Response, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, params} + for _, a := range reqEditors { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "InventoryAPIListZones", varargs...) + ret0, _ := ret[0].(*http.Response) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InventoryAPIListZones indicates an expected call of InventoryAPIListZones. +func (mr *MockClientInterfaceMockRecorder) InventoryAPIListZones(ctx, params interface{}, reqEditors ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, params}, reqEditors...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIListZones", reflect.TypeOf((*MockClientInterface)(nil).InventoryAPIListZones), varargs...) +} + // InventoryAPIOverwriteReservations mocks base method. func (m *MockClientInterface) InventoryAPIOverwriteReservations(ctx context.Context, organizationId string, body sdk.InventoryAPIOverwriteReservationsJSONRequestBody, reqEditors ...sdk.RequestEditorFn) (*http.Response, error) { m.ctrl.T.Helper() @@ -4273,6 +4313,36 @@ func (mr *MockClientWithResponsesInterfaceMockRecorder) InventoryAPIGetReservati return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIGetReservationsWithResponse", reflect.TypeOf((*MockClientWithResponsesInterface)(nil).InventoryAPIGetReservationsWithResponse), ctx, organizationId) } +// InventoryAPIListRegionsWithResponse mocks base method. +func (m *MockClientWithResponsesInterface) InventoryAPIListRegionsWithResponse(ctx context.Context, params *sdk.InventoryAPIListRegionsParams) (*sdk.InventoryAPIListRegionsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InventoryAPIListRegionsWithResponse", ctx, params) + ret0, _ := ret[0].(*sdk.InventoryAPIListRegionsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InventoryAPIListRegionsWithResponse indicates an expected call of InventoryAPIListRegionsWithResponse. +func (mr *MockClientWithResponsesInterfaceMockRecorder) InventoryAPIListRegionsWithResponse(ctx, params interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIListRegionsWithResponse", reflect.TypeOf((*MockClientWithResponsesInterface)(nil).InventoryAPIListRegionsWithResponse), ctx, params) +} + +// InventoryAPIListZonesWithResponse mocks base method. +func (m *MockClientWithResponsesInterface) InventoryAPIListZonesWithResponse(ctx context.Context, params *sdk.InventoryAPIListZonesParams) (*sdk.InventoryAPIListZonesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "InventoryAPIListZonesWithResponse", ctx, params) + ret0, _ := ret[0].(*sdk.InventoryAPIListZonesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// InventoryAPIListZonesWithResponse indicates an expected call of InventoryAPIListZonesWithResponse. +func (mr *MockClientWithResponsesInterfaceMockRecorder) InventoryAPIListZonesWithResponse(ctx, params interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InventoryAPIListZonesWithResponse", reflect.TypeOf((*MockClientWithResponsesInterface)(nil).InventoryAPIListZonesWithResponse), ctx, params) +} + // InventoryAPIOverwriteReservationsWithBodyWithResponse mocks base method. func (m *MockClientWithResponsesInterface) InventoryAPIOverwriteReservationsWithBodyWithResponse(ctx context.Context, organizationId, contentType string, body io.Reader) (*sdk.InventoryAPIOverwriteReservationsResponse, error) { m.ctrl.T.Helper()