diff --git a/Makefile b/Makefile index a5f9b6b67..1b841af14 100644 --- a/Makefile +++ b/Makefile @@ -130,7 +130,7 @@ bin/golangci-lint: GOVERTER ?= ${PROJECT_BIN}/goverter bin/goverter: - GOBIN=$(PROJECT_PATH)/bin ${GO} install github.com/jmattheis/goverter/cmd/goverter@v1.1.1 + GOBIN=$(PROJECT_PATH)/bin ${GO} install github.com/jmattheis/goverter/cmd/goverter@v1.4.1 OPENAPI_GENERATOR ?= ${PROJECT_BIN}/openapi-generator-cli NPM ?= "$(shell which npm)" diff --git a/internal/converter/generated/mlmd_openapi_converter.gen.go b/internal/converter/generated/mlmd_openapi_converter.gen.go old mode 100755 new mode 100644 index 06331fea6..6af53b5e0 --- a/internal/converter/generated/mlmd_openapi_converter.gen.go +++ b/internal/converter/generated/mlmd_openapi_converter.gen.go @@ -1,4 +1,5 @@ // Code generated by github.com/jmattheis/goverter, DO NOT EDIT. +//go:build !goverter package generated @@ -22,22 +23,18 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertDocArtifact(source *proto.Artifact) openapiDocArtifact.ArtifactType = xstring mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiDocArtifact.CustomProperties = &mapStringOpenapiMetadataValue openapiDocArtifact.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString = &xstring2 + openapiDocArtifact.ExternalId = &xstring2 } - openapiDocArtifact.ExternalId = pString - var pString2 *string if (*source).Uri != nil { xstring3 := *(*source).Uri - pString2 = &xstring3 + openapiDocArtifact.Uri = &xstring3 } - openapiDocArtifact.Uri = pString2 openapiDocArtifact.State = converter.MapMLMDArtifactState((*source).State) openapiDocArtifact.Name = converter.MapNameFromOwned((*source).Name) openapiDocArtifact.Id = converter.Int64ToString((*source).Id) @@ -53,16 +50,14 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertInferenceService(source *proto.Conte var openapiInferenceService openapi.InferenceService mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiInferenceService.CustomProperties = &mapStringOpenapiMetadataValue openapiInferenceService.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring := *(*source).ExternalId - pString = &xstring + openapiInferenceService.ExternalId = &xstring } - openapiInferenceService.ExternalId = pString openapiInferenceService.Name = converter.MapNameFromOwned((*source).Name) openapiInferenceService.Id = converter.Int64ToString((*source).Id) openapiInferenceService.CreateTimeSinceEpoch = converter.Int64ToString((*source).CreateTimeSinceEpoch) @@ -87,22 +82,18 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertModelArtifact(source *proto.Artifact openapiModelArtifact.ArtifactType = xstring mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiModelArtifact.CustomProperties = &mapStringOpenapiMetadataValue openapiModelArtifact.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString = &xstring2 + openapiModelArtifact.ExternalId = &xstring2 } - openapiModelArtifact.ExternalId = pString - var pString2 *string if (*source).Uri != nil { xstring3 := *(*source).Uri - pString2 = &xstring3 + openapiModelArtifact.Uri = &xstring3 } - openapiModelArtifact.Uri = pString2 openapiModelArtifact.State = converter.MapMLMDArtifactState((*source).State) openapiModelArtifact.Name = converter.MapNameFromOwned((*source).Name) openapiModelArtifact.Id = converter.Int64ToString((*source).Id) @@ -123,16 +114,14 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertModelVersion(source *proto.Context) var openapiModelVersion openapi.ModelVersion mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiModelVersion.CustomProperties = &mapStringOpenapiMetadataValue openapiModelVersion.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring := *(*source).ExternalId - pString = &xstring + openapiModelVersion.ExternalId = &xstring } - openapiModelVersion.ExternalId = pString openapiModelVersion.Name = converter.MapNameFromOwned((*source).Name) openapiModelVersion.State = converter.MapModelVersionState((*source).Properties) openapiModelVersion.Author = converter.MapPropertyAuthor((*source).Properties) @@ -154,22 +143,18 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertRegisteredModel(source *proto.Contex var openapiRegisteredModel openapi.RegisteredModel mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiRegisteredModel.CustomProperties = &mapStringOpenapiMetadataValue openapiRegisteredModel.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring := *(*source).ExternalId - pString = &xstring + openapiRegisteredModel.ExternalId = &xstring } - openapiRegisteredModel.ExternalId = pString - var pString2 *string if (*source).Name != nil { xstring2 := *(*source).Name - pString2 = &xstring2 + openapiRegisteredModel.Name = &xstring2 } - openapiRegisteredModel.Name = pString2 openapiRegisteredModel.Id = converter.Int64ToString((*source).Id) openapiRegisteredModel.CreateTimeSinceEpoch = converter.Int64ToString((*source).CreateTimeSinceEpoch) openapiRegisteredModel.LastUpdateTimeSinceEpoch = converter.Int64ToString((*source).LastUpdateTimeSinceEpoch) @@ -186,16 +171,14 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertServeModel(source *proto.Execution) openapiServeModel.LastKnownState = converter.MapMLMDServeModelLastKnownState((*source).LastKnownState) mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiServeModel.CustomProperties = &mapStringOpenapiMetadataValue openapiServeModel.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring := *(*source).ExternalId - pString = &xstring + openapiServeModel.ExternalId = &xstring } - openapiServeModel.ExternalId = pString openapiServeModel.Name = converter.MapNameFromOwned((*source).Name) openapiServeModel.Id = converter.Int64ToString((*source).Id) openapiServeModel.CreateTimeSinceEpoch = converter.Int64ToString((*source).CreateTimeSinceEpoch) @@ -211,16 +194,14 @@ func (c *MLMDToOpenAPIConverterImpl) ConvertServingEnvironment(source *proto.Con var openapiServingEnvironment openapi.ServingEnvironment mapStringOpenapiMetadataValue, err := converter.MapMLMDCustomProperties((*source).CustomProperties) if err != nil { - return nil, err + return nil, fmt.Errorf("error setting field CustomProperties: %w", err) } openapiServingEnvironment.CustomProperties = &mapStringOpenapiMetadataValue openapiServingEnvironment.Description = converter.MapDescription((*source).Properties) - var pString *string if (*source).ExternalId != nil { xstring := *(*source).ExternalId - pString = &xstring + openapiServingEnvironment.ExternalId = &xstring } - openapiServingEnvironment.ExternalId = pString openapiServingEnvironment.Name = converter.MapNameFromOwned((*source).Name) openapiServingEnvironment.Id = converter.Int64ToString((*source).Id) openapiServingEnvironment.CreateTimeSinceEpoch = converter.Int64ToString((*source).CreateTimeSinceEpoch) diff --git a/internal/converter/generated/openapi_converter.gen.go b/internal/converter/generated/openapi_converter.gen.go old mode 100755 new mode 100644 index 1cb8f6d16..68dfc9260 --- a/internal/converter/generated/openapi_converter.gen.go +++ b/internal/converter/generated/openapi_converter.gen.go @@ -1,8 +1,10 @@ // Code generated by github.com/jmattheis/goverter, DO NOT EDIT. +//go:build !goverter package generated import ( + "fmt" converter "github.com/kubeflow/model-registry/internal/converter" openapi "github.com/kubeflow/model-registry/pkg/openapi" ) @@ -13,51 +15,43 @@ func (c *OpenAPIConverterImpl) ConvertInferenceServiceCreate(source *openapi.Inf var pOpenapiInferenceService *openapi.InferenceService if source != nil { var openapiInferenceService openapi.InferenceService - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiInferenceService.CustomProperties = &mapStringOpenapiMetadataValue } - openapiInferenceService.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiInferenceService.Description = &xstring } - openapiInferenceService.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiInferenceService.ExternalId = &xstring2 } - openapiInferenceService.ExternalId = pString2 - var pString3 *string if (*source).Name != nil { xstring3 := *(*source).Name - pString3 = &xstring3 + openapiInferenceService.Name = &xstring3 } - openapiInferenceService.Name = pString3 - var pString4 *string if (*source).ModelVersionId != nil { xstring4 := *(*source).ModelVersionId - pString4 = &xstring4 + openapiInferenceService.ModelVersionId = &xstring4 } - openapiInferenceService.ModelVersionId = pString4 - var pString5 *string if (*source).Runtime != nil { xstring5 := *(*source).Runtime - pString5 = &xstring5 + openapiInferenceService.Runtime = &xstring5 } - openapiInferenceService.Runtime = pString5 - var pOpenapiInferenceServiceState *openapi.InferenceServiceState if (*source).DesiredState != nil { - openapiInferenceServiceState := openapi.InferenceServiceState(*(*source).DesiredState) - pOpenapiInferenceServiceState = &openapiInferenceServiceState + openapiInferenceServiceState, err := c.openapiInferenceServiceStateToOpenapiInferenceServiceState(*(*source).DesiredState) + if err != nil { + return nil, fmt.Errorf("error setting field DesiredState: %w", err) + } + openapiInferenceService.DesiredState = &openapiInferenceServiceState } - openapiInferenceService.DesiredState = pOpenapiInferenceServiceState openapiInferenceService.RegisteredModelId = (*source).RegisteredModelId openapiInferenceService.ServingEnvironmentId = (*source).ServingEnvironmentId pOpenapiInferenceService = &openapiInferenceService @@ -68,45 +62,39 @@ func (c *OpenAPIConverterImpl) ConvertInferenceServiceUpdate(source *openapi.Inf var pOpenapiInferenceService *openapi.InferenceService if source != nil { var openapiInferenceService openapi.InferenceService - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiInferenceService.CustomProperties = &mapStringOpenapiMetadataValue } - openapiInferenceService.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiInferenceService.Description = &xstring } - openapiInferenceService.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiInferenceService.ExternalId = &xstring2 } - openapiInferenceService.ExternalId = pString2 - var pString3 *string if (*source).ModelVersionId != nil { xstring3 := *(*source).ModelVersionId - pString3 = &xstring3 + openapiInferenceService.ModelVersionId = &xstring3 } - openapiInferenceService.ModelVersionId = pString3 - var pString4 *string if (*source).Runtime != nil { xstring4 := *(*source).Runtime - pString4 = &xstring4 + openapiInferenceService.Runtime = &xstring4 } - openapiInferenceService.Runtime = pString4 - var pOpenapiInferenceServiceState *openapi.InferenceServiceState if (*source).DesiredState != nil { - openapiInferenceServiceState := openapi.InferenceServiceState(*(*source).DesiredState) - pOpenapiInferenceServiceState = &openapiInferenceServiceState + openapiInferenceServiceState, err := c.openapiInferenceServiceStateToOpenapiInferenceServiceState(*(*source).DesiredState) + if err != nil { + return nil, fmt.Errorf("error setting field DesiredState: %w", err) + } + openapiInferenceService.DesiredState = &openapiInferenceServiceState } - openapiInferenceService.DesiredState = pOpenapiInferenceServiceState pOpenapiInferenceService = &openapiInferenceService } return pOpenapiInferenceService, nil @@ -115,75 +103,59 @@ func (c *OpenAPIConverterImpl) ConvertModelArtifactCreate(source *openapi.ModelA var pOpenapiModelArtifact *openapi.ModelArtifact if source != nil { var openapiModelArtifact openapi.ModelArtifact - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiModelArtifact.CustomProperties = &mapStringOpenapiMetadataValue } - openapiModelArtifact.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiModelArtifact.Description = &xstring } - openapiModelArtifact.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiModelArtifact.ExternalId = &xstring2 } - openapiModelArtifact.ExternalId = pString2 - var pString3 *string if (*source).Uri != nil { xstring3 := *(*source).Uri - pString3 = &xstring3 + openapiModelArtifact.Uri = &xstring3 } - openapiModelArtifact.Uri = pString3 - var pOpenapiArtifactState *openapi.ArtifactState if (*source).State != nil { - openapiArtifactState := openapi.ArtifactState(*(*source).State) - pOpenapiArtifactState = &openapiArtifactState + openapiArtifactState, err := c.openapiArtifactStateToOpenapiArtifactState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiModelArtifact.State = &openapiArtifactState } - openapiModelArtifact.State = pOpenapiArtifactState - var pString4 *string if (*source).Name != nil { xstring4 := *(*source).Name - pString4 = &xstring4 + openapiModelArtifact.Name = &xstring4 } - openapiModelArtifact.Name = pString4 - var pString5 *string if (*source).ModelFormatName != nil { xstring5 := *(*source).ModelFormatName - pString5 = &xstring5 + openapiModelArtifact.ModelFormatName = &xstring5 } - openapiModelArtifact.ModelFormatName = pString5 - var pString6 *string if (*source).StorageKey != nil { xstring6 := *(*source).StorageKey - pString6 = &xstring6 + openapiModelArtifact.StorageKey = &xstring6 } - openapiModelArtifact.StorageKey = pString6 - var pString7 *string if (*source).StoragePath != nil { xstring7 := *(*source).StoragePath - pString7 = &xstring7 + openapiModelArtifact.StoragePath = &xstring7 } - openapiModelArtifact.StoragePath = pString7 - var pString8 *string if (*source).ModelFormatVersion != nil { xstring8 := *(*source).ModelFormatVersion - pString8 = &xstring8 + openapiModelArtifact.ModelFormatVersion = &xstring8 } - openapiModelArtifact.ModelFormatVersion = pString8 - var pString9 *string if (*source).ServiceAccountName != nil { xstring9 := *(*source).ServiceAccountName - pString9 = &xstring9 + openapiModelArtifact.ServiceAccountName = &xstring9 } - openapiModelArtifact.ServiceAccountName = pString9 pOpenapiModelArtifact = &openapiModelArtifact } return pOpenapiModelArtifact, nil @@ -192,69 +164,55 @@ func (c *OpenAPIConverterImpl) ConvertModelArtifactUpdate(source *openapi.ModelA var pOpenapiModelArtifact *openapi.ModelArtifact if source != nil { var openapiModelArtifact openapi.ModelArtifact - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiModelArtifact.CustomProperties = &mapStringOpenapiMetadataValue } - openapiModelArtifact.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiModelArtifact.Description = &xstring } - openapiModelArtifact.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiModelArtifact.ExternalId = &xstring2 } - openapiModelArtifact.ExternalId = pString2 - var pString3 *string if (*source).Uri != nil { xstring3 := *(*source).Uri - pString3 = &xstring3 + openapiModelArtifact.Uri = &xstring3 } - openapiModelArtifact.Uri = pString3 - var pOpenapiArtifactState *openapi.ArtifactState if (*source).State != nil { - openapiArtifactState := openapi.ArtifactState(*(*source).State) - pOpenapiArtifactState = &openapiArtifactState + openapiArtifactState, err := c.openapiArtifactStateToOpenapiArtifactState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiModelArtifact.State = &openapiArtifactState } - openapiModelArtifact.State = pOpenapiArtifactState - var pString4 *string if (*source).ModelFormatName != nil { xstring4 := *(*source).ModelFormatName - pString4 = &xstring4 + openapiModelArtifact.ModelFormatName = &xstring4 } - openapiModelArtifact.ModelFormatName = pString4 - var pString5 *string if (*source).StorageKey != nil { xstring5 := *(*source).StorageKey - pString5 = &xstring5 + openapiModelArtifact.StorageKey = &xstring5 } - openapiModelArtifact.StorageKey = pString5 - var pString6 *string if (*source).StoragePath != nil { xstring6 := *(*source).StoragePath - pString6 = &xstring6 + openapiModelArtifact.StoragePath = &xstring6 } - openapiModelArtifact.StoragePath = pString6 - var pString7 *string if (*source).ModelFormatVersion != nil { xstring7 := *(*source).ModelFormatVersion - pString7 = &xstring7 + openapiModelArtifact.ModelFormatVersion = &xstring7 } - openapiModelArtifact.ModelFormatVersion = pString7 - var pString8 *string if (*source).ServiceAccountName != nil { xstring8 := *(*source).ServiceAccountName - pString8 = &xstring8 + openapiModelArtifact.ServiceAccountName = &xstring8 } - openapiModelArtifact.ServiceAccountName = pString8 pOpenapiModelArtifact = &openapiModelArtifact } return pOpenapiModelArtifact, nil @@ -263,45 +221,39 @@ func (c *OpenAPIConverterImpl) ConvertModelVersionCreate(source *openapi.ModelVe var pOpenapiModelVersion *openapi.ModelVersion if source != nil { var openapiModelVersion openapi.ModelVersion - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiModelVersion.CustomProperties = &mapStringOpenapiMetadataValue } - openapiModelVersion.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiModelVersion.Description = &xstring } - openapiModelVersion.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiModelVersion.ExternalId = &xstring2 } - openapiModelVersion.ExternalId = pString2 - var pString3 *string if (*source).Name != nil { xstring3 := *(*source).Name - pString3 = &xstring3 + openapiModelVersion.Name = &xstring3 } - openapiModelVersion.Name = pString3 - var pOpenapiModelVersionState *openapi.ModelVersionState if (*source).State != nil { - openapiModelVersionState := openapi.ModelVersionState(*(*source).State) - pOpenapiModelVersionState = &openapiModelVersionState + openapiModelVersionState, err := c.openapiModelVersionStateToOpenapiModelVersionState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiModelVersion.State = &openapiModelVersionState } - openapiModelVersion.State = pOpenapiModelVersionState - var pString4 *string if (*source).Author != nil { xstring4 := *(*source).Author - pString4 = &xstring4 + openapiModelVersion.Author = &xstring4 } - openapiModelVersion.Author = pString4 openapiModelVersion.RegisteredModelId = (*source).RegisteredModelId pOpenapiModelVersion = &openapiModelVersion } @@ -311,39 +263,35 @@ func (c *OpenAPIConverterImpl) ConvertModelVersionUpdate(source *openapi.ModelVe var pOpenapiModelVersion *openapi.ModelVersion if source != nil { var openapiModelVersion openapi.ModelVersion - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiModelVersion.CustomProperties = &mapStringOpenapiMetadataValue } - openapiModelVersion.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiModelVersion.Description = &xstring } - openapiModelVersion.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiModelVersion.ExternalId = &xstring2 } - openapiModelVersion.ExternalId = pString2 - var pOpenapiModelVersionState *openapi.ModelVersionState if (*source).State != nil { - openapiModelVersionState := openapi.ModelVersionState(*(*source).State) - pOpenapiModelVersionState = &openapiModelVersionState + openapiModelVersionState, err := c.openapiModelVersionStateToOpenapiModelVersionState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiModelVersion.State = &openapiModelVersionState } - openapiModelVersion.State = pOpenapiModelVersionState - var pString3 *string if (*source).Author != nil { xstring3 := *(*source).Author - pString3 = &xstring3 + openapiModelVersion.Author = &xstring3 } - openapiModelVersion.Author = pString3 pOpenapiModelVersion = &openapiModelVersion } return pOpenapiModelVersion, nil @@ -352,45 +300,39 @@ func (c *OpenAPIConverterImpl) ConvertRegisteredModelCreate(source *openapi.Regi var pOpenapiRegisteredModel *openapi.RegisteredModel if source != nil { var openapiRegisteredModel openapi.RegisteredModel - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiRegisteredModel.CustomProperties = &mapStringOpenapiMetadataValue } - openapiRegisteredModel.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiRegisteredModel.Description = &xstring } - openapiRegisteredModel.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiRegisteredModel.ExternalId = &xstring2 } - openapiRegisteredModel.ExternalId = pString2 - var pString3 *string if (*source).Name != nil { xstring3 := *(*source).Name - pString3 = &xstring3 + openapiRegisteredModel.Name = &xstring3 } - openapiRegisteredModel.Name = pString3 - var pString4 *string if (*source).Owner != nil { xstring4 := *(*source).Owner - pString4 = &xstring4 + openapiRegisteredModel.Owner = &xstring4 } - openapiRegisteredModel.Owner = pString4 - var pOpenapiRegisteredModelState *openapi.RegisteredModelState if (*source).State != nil { - openapiRegisteredModelState := openapi.RegisteredModelState(*(*source).State) - pOpenapiRegisteredModelState = &openapiRegisteredModelState + openapiRegisteredModelState, err := c.openapiRegisteredModelStateToOpenapiRegisteredModelState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiRegisteredModel.State = &openapiRegisteredModelState } - openapiRegisteredModel.State = pOpenapiRegisteredModelState pOpenapiRegisteredModel = &openapiRegisteredModel } return pOpenapiRegisteredModel, nil @@ -399,39 +341,35 @@ func (c *OpenAPIConverterImpl) ConvertRegisteredModelUpdate(source *openapi.Regi var pOpenapiRegisteredModel *openapi.RegisteredModel if source != nil { var openapiRegisteredModel openapi.RegisteredModel - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiRegisteredModel.CustomProperties = &mapStringOpenapiMetadataValue } - openapiRegisteredModel.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiRegisteredModel.Description = &xstring } - openapiRegisteredModel.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiRegisteredModel.ExternalId = &xstring2 } - openapiRegisteredModel.ExternalId = pString2 - var pString3 *string if (*source).Owner != nil { xstring3 := *(*source).Owner - pString3 = &xstring3 + openapiRegisteredModel.Owner = &xstring3 } - openapiRegisteredModel.Owner = pString3 - var pOpenapiRegisteredModelState *openapi.RegisteredModelState if (*source).State != nil { - openapiRegisteredModelState := openapi.RegisteredModelState(*(*source).State) - pOpenapiRegisteredModelState = &openapiRegisteredModelState + openapiRegisteredModelState, err := c.openapiRegisteredModelStateToOpenapiRegisteredModelState(*(*source).State) + if err != nil { + return nil, fmt.Errorf("error setting field State: %w", err) + } + openapiRegisteredModel.State = &openapiRegisteredModelState } - openapiRegisteredModel.State = pOpenapiRegisteredModelState pOpenapiRegisteredModel = &openapiRegisteredModel } return pOpenapiRegisteredModel, nil @@ -440,39 +378,35 @@ func (c *OpenAPIConverterImpl) ConvertServeModelCreate(source *openapi.ServeMode var pOpenapiServeModel *openapi.ServeModel if source != nil { var openapiServeModel openapi.ServeModel - var pOpenapiExecutionState *openapi.ExecutionState if (*source).LastKnownState != nil { - openapiExecutionState := openapi.ExecutionState(*(*source).LastKnownState) - pOpenapiExecutionState = &openapiExecutionState + openapiExecutionState, err := c.openapiExecutionStateToOpenapiExecutionState(*(*source).LastKnownState) + if err != nil { + return nil, fmt.Errorf("error setting field LastKnownState: %w", err) + } + openapiServeModel.LastKnownState = &openapiExecutionState } - openapiServeModel.LastKnownState = pOpenapiExecutionState - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiServeModel.CustomProperties = &mapStringOpenapiMetadataValue } - openapiServeModel.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiServeModel.Description = &xstring } - openapiServeModel.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiServeModel.ExternalId = &xstring2 } - openapiServeModel.ExternalId = pString2 - var pString3 *string if (*source).Name != nil { xstring3 := *(*source).Name - pString3 = &xstring3 + openapiServeModel.Name = &xstring3 } - openapiServeModel.Name = pString3 openapiServeModel.ModelVersionId = (*source).ModelVersionId pOpenapiServeModel = &openapiServeModel } @@ -482,33 +416,31 @@ func (c *OpenAPIConverterImpl) ConvertServeModelUpdate(source *openapi.ServeMode var pOpenapiServeModel *openapi.ServeModel if source != nil { var openapiServeModel openapi.ServeModel - var pOpenapiExecutionState *openapi.ExecutionState if (*source).LastKnownState != nil { - openapiExecutionState := openapi.ExecutionState(*(*source).LastKnownState) - pOpenapiExecutionState = &openapiExecutionState + openapiExecutionState, err := c.openapiExecutionStateToOpenapiExecutionState(*(*source).LastKnownState) + if err != nil { + return nil, fmt.Errorf("error setting field LastKnownState: %w", err) + } + openapiServeModel.LastKnownState = &openapiExecutionState } - openapiServeModel.LastKnownState = pOpenapiExecutionState - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiServeModel.CustomProperties = &mapStringOpenapiMetadataValue } - openapiServeModel.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiServeModel.Description = &xstring } - openapiServeModel.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiServeModel.ExternalId = &xstring2 } - openapiServeModel.ExternalId = pString2 pOpenapiServeModel = &openapiServeModel } return pOpenapiServeModel, nil @@ -517,33 +449,28 @@ func (c *OpenAPIConverterImpl) ConvertServingEnvironmentCreate(source *openapi.S var pOpenapiServingEnvironment *openapi.ServingEnvironment if source != nil { var openapiServingEnvironment openapi.ServingEnvironment - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiServingEnvironment.CustomProperties = &mapStringOpenapiMetadataValue } - openapiServingEnvironment.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiServingEnvironment.Description = &xstring } - openapiServingEnvironment.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiServingEnvironment.ExternalId = &xstring2 } - openapiServingEnvironment.ExternalId = pString2 - var pString3 *string if (*source).Name != nil { xstring3 := *(*source).Name - pString3 = &xstring3 + openapiServingEnvironment.Name = &xstring3 } - openapiServingEnvironment.Name = pString3 pOpenapiServingEnvironment = &openapiServingEnvironment } return pOpenapiServingEnvironment, nil @@ -552,165 +479,196 @@ func (c *OpenAPIConverterImpl) ConvertServingEnvironmentUpdate(source *openapi.S var pOpenapiServingEnvironment *openapi.ServingEnvironment if source != nil { var openapiServingEnvironment openapi.ServingEnvironment - var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue if (*source).CustomProperties != nil { - mapStringOpenapiMetadataValue := make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) - for key, value := range *(*source).CustomProperties { - mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*(*source).CustomProperties) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*(*source).CustomProperties))) + for key, value := range *(*source).CustomProperties { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } } - pMapStringOpenapiMetadataValue = &mapStringOpenapiMetadataValue + openapiServingEnvironment.CustomProperties = &mapStringOpenapiMetadataValue } - openapiServingEnvironment.CustomProperties = pMapStringOpenapiMetadataValue - var pString *string if (*source).Description != nil { xstring := *(*source).Description - pString = &xstring + openapiServingEnvironment.Description = &xstring } - openapiServingEnvironment.Description = pString - var pString2 *string if (*source).ExternalId != nil { xstring2 := *(*source).ExternalId - pString2 = &xstring2 + openapiServingEnvironment.ExternalId = &xstring2 } - openapiServingEnvironment.ExternalId = pString2 pOpenapiServingEnvironment = &openapiServingEnvironment } return pOpenapiServingEnvironment, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForDocArtifact(source converter.OpenapiUpdateWrapper[openapi.DocArtifact]) (openapi.DocArtifact, error) { - openapiDocArtifact := converter.InitDocArtifactWithUpdate(source) + openapiDocArtifact := converter.InitWithUpdate(source) _ = source return openapiDocArtifact, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForInferenceService(source converter.OpenapiUpdateWrapper[openapi.InferenceService]) (openapi.InferenceService, error) { - openapiInferenceService := converter.InitInferenceServiceWithUpdate(source) + openapiInferenceService := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = source.Existing.Name } - var pString2 *string if pString != nil { xstring := *pString - pString2 = &xstring + openapiInferenceService.Name = &xstring } - openapiInferenceService.Name = pString2 - var pString3 *string + var pString2 *string if source.Existing != nil { - pString3 = &source.Existing.RegisteredModelId + pString2 = &source.Existing.RegisteredModelId } - var xstring2 string - if pString3 != nil { - xstring2 = *pString3 + if pString2 != nil { + openapiInferenceService.RegisteredModelId = *pString2 } - openapiInferenceService.RegisteredModelId = xstring2 - var pString4 *string + var pString3 *string if source.Existing != nil { - pString4 = &source.Existing.ServingEnvironmentId + pString3 = &source.Existing.ServingEnvironmentId } - var xstring3 string - if pString4 != nil { - xstring3 = *pString4 + if pString3 != nil { + openapiInferenceService.ServingEnvironmentId = *pString3 } - openapiInferenceService.ServingEnvironmentId = xstring3 return openapiInferenceService, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForModelArtifact(source converter.OpenapiUpdateWrapper[openapi.ModelArtifact]) (openapi.ModelArtifact, error) { - openapiModelArtifact := converter.InitModelArtifactWithUpdate(source) + openapiModelArtifact := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = &source.Existing.ArtifactType } - var xstring string if pString != nil { - xstring = *pString + openapiModelArtifact.ArtifactType = *pString } - openapiModelArtifact.ArtifactType = xstring var pString2 *string if source.Existing != nil { pString2 = source.Existing.Name } - var pString3 *string if pString2 != nil { - xstring2 := *pString2 - pString3 = &xstring2 + xstring := *pString2 + openapiModelArtifact.Name = &xstring } - openapiModelArtifact.Name = pString3 return openapiModelArtifact, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForModelVersion(source converter.OpenapiUpdateWrapper[openapi.ModelVersion]) (openapi.ModelVersion, error) { - openapiModelVersion := converter.InitModelVersionWithUpdate(source) + openapiModelVersion := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = source.Existing.Name } - var pString2 *string if pString != nil { xstring := *pString - pString2 = &xstring + openapiModelVersion.Name = &xstring } - openapiModelVersion.Name = pString2 - var pString3 *string + var pString2 *string if source.Existing != nil { - pString3 = &source.Existing.RegisteredModelId + pString2 = &source.Existing.RegisteredModelId } - var xstring2 string - if pString3 != nil { - xstring2 = *pString3 + if pString2 != nil { + openapiModelVersion.RegisteredModelId = *pString2 } - openapiModelVersion.RegisteredModelId = xstring2 return openapiModelVersion, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForRegisteredModel(source converter.OpenapiUpdateWrapper[openapi.RegisteredModel]) (openapi.RegisteredModel, error) { - openapiRegisteredModel := converter.InitRegisteredModelWithUpdate(source) + openapiRegisteredModel := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = source.Existing.Name } - var pString2 *string if pString != nil { xstring := *pString - pString2 = &xstring + openapiRegisteredModel.Name = &xstring } - openapiRegisteredModel.Name = pString2 return openapiRegisteredModel, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForServeModel(source converter.OpenapiUpdateWrapper[openapi.ServeModel]) (openapi.ServeModel, error) { - openapiServeModel := converter.InitServeModelWithUpdate(source) + openapiServeModel := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = source.Existing.Name } - var pString2 *string if pString != nil { xstring := *pString - pString2 = &xstring + openapiServeModel.Name = &xstring } - openapiServeModel.Name = pString2 - var pString3 *string + var pString2 *string if source.Existing != nil { - pString3 = &source.Existing.ModelVersionId + pString2 = &source.Existing.ModelVersionId } - var xstring2 string - if pString3 != nil { - xstring2 = *pString3 + if pString2 != nil { + openapiServeModel.ModelVersionId = *pString2 } - openapiServeModel.ModelVersionId = xstring2 return openapiServeModel, nil } func (c *OpenAPIConverterImpl) OverrideNotEditableForServingEnvironment(source converter.OpenapiUpdateWrapper[openapi.ServingEnvironment]) (openapi.ServingEnvironment, error) { - openapiServingEnvironment := converter.InitServingEnvironmentWithUpdate(source) + openapiServingEnvironment := converter.InitWithUpdate(source) var pString *string if source.Existing != nil { pString = source.Existing.Name } - var pString2 *string if pString != nil { xstring := *pString - pString2 = &xstring + openapiServingEnvironment.Name = &xstring } - openapiServingEnvironment.Name = pString2 return openapiServingEnvironment, nil } +func (c *OpenAPIConverterImpl) openapiArtifactStateToOpenapiArtifactState(source openapi.ArtifactState) (openapi.ArtifactState, error) { + var openapiArtifactState openapi.ArtifactState + switch source { + case openapi.ARTIFACTSTATE_ABANDONED: + openapiArtifactState = openapi.ARTIFACTSTATE_ABANDONED + case openapi.ARTIFACTSTATE_DELETED: + openapiArtifactState = openapi.ARTIFACTSTATE_DELETED + case openapi.ARTIFACTSTATE_LIVE: + openapiArtifactState = openapi.ARTIFACTSTATE_LIVE + case openapi.ARTIFACTSTATE_MARKED_FOR_DELETION: + openapiArtifactState = openapi.ARTIFACTSTATE_MARKED_FOR_DELETION + case openapi.ARTIFACTSTATE_PENDING: + openapiArtifactState = openapi.ARTIFACTSTATE_PENDING + case openapi.ARTIFACTSTATE_REFERENCE: + openapiArtifactState = openapi.ARTIFACTSTATE_REFERENCE + case openapi.ARTIFACTSTATE_UNKNOWN: + openapiArtifactState = openapi.ARTIFACTSTATE_UNKNOWN + default: + return openapiArtifactState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiArtifactState, nil +} +func (c *OpenAPIConverterImpl) openapiExecutionStateToOpenapiExecutionState(source openapi.ExecutionState) (openapi.ExecutionState, error) { + var openapiExecutionState openapi.ExecutionState + switch source { + case openapi.EXECUTIONSTATE_CACHED: + openapiExecutionState = openapi.EXECUTIONSTATE_CACHED + case openapi.EXECUTIONSTATE_CANCELED: + openapiExecutionState = openapi.EXECUTIONSTATE_CANCELED + case openapi.EXECUTIONSTATE_COMPLETE: + openapiExecutionState = openapi.EXECUTIONSTATE_COMPLETE + case openapi.EXECUTIONSTATE_FAILED: + openapiExecutionState = openapi.EXECUTIONSTATE_FAILED + case openapi.EXECUTIONSTATE_NEW: + openapiExecutionState = openapi.EXECUTIONSTATE_NEW + case openapi.EXECUTIONSTATE_RUNNING: + openapiExecutionState = openapi.EXECUTIONSTATE_RUNNING + case openapi.EXECUTIONSTATE_UNKNOWN: + openapiExecutionState = openapi.EXECUTIONSTATE_UNKNOWN + default: + return openapiExecutionState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiExecutionState, nil +} +func (c *OpenAPIConverterImpl) openapiInferenceServiceStateToOpenapiInferenceServiceState(source openapi.InferenceServiceState) (openapi.InferenceServiceState, error) { + var openapiInferenceServiceState openapi.InferenceServiceState + switch source { + case openapi.INFERENCESERVICESTATE_DEPLOYED: + openapiInferenceServiceState = openapi.INFERENCESERVICESTATE_DEPLOYED + case openapi.INFERENCESERVICESTATE_UNDEPLOYED: + openapiInferenceServiceState = openapi.INFERENCESERVICESTATE_UNDEPLOYED + default: + return openapiInferenceServiceState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiInferenceServiceState, nil +} func (c *OpenAPIConverterImpl) openapiMetadataValueToOpenapiMetadataValue(source openapi.MetadataValue) openapi.MetadataValue { var openapiMetadataValue openapi.MetadataValue openapiMetadataValue.MetadataBoolValue = c.pOpenapiMetadataBoolValueToPOpenapiMetadataBoolValue(source.MetadataBoolValue) @@ -721,6 +679,30 @@ func (c *OpenAPIConverterImpl) openapiMetadataValueToOpenapiMetadataValue(source openapiMetadataValue.MetadataStructValue = c.pOpenapiMetadataStructValueToPOpenapiMetadataStructValue(source.MetadataStructValue) return openapiMetadataValue } +func (c *OpenAPIConverterImpl) openapiModelVersionStateToOpenapiModelVersionState(source openapi.ModelVersionState) (openapi.ModelVersionState, error) { + var openapiModelVersionState openapi.ModelVersionState + switch source { + case openapi.MODELVERSIONSTATE_ARCHIVED: + openapiModelVersionState = openapi.MODELVERSIONSTATE_ARCHIVED + case openapi.MODELVERSIONSTATE_LIVE: + openapiModelVersionState = openapi.MODELVERSIONSTATE_LIVE + default: + return openapiModelVersionState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiModelVersionState, nil +} +func (c *OpenAPIConverterImpl) openapiRegisteredModelStateToOpenapiRegisteredModelState(source openapi.RegisteredModelState) (openapi.RegisteredModelState, error) { + var openapiRegisteredModelState openapi.RegisteredModelState + switch source { + case openapi.REGISTEREDMODELSTATE_ARCHIVED: + openapiRegisteredModelState = openapi.REGISTEREDMODELSTATE_ARCHIVED + case openapi.REGISTEREDMODELSTATE_LIVE: + openapiRegisteredModelState = openapi.REGISTEREDMODELSTATE_LIVE + default: + return openapiRegisteredModelState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiRegisteredModelState, nil +} func (c *OpenAPIConverterImpl) pOpenapiMetadataBoolValueToPOpenapiMetadataBoolValue(source *openapi.MetadataBoolValue) *openapi.MetadataBoolValue { var pOpenapiMetadataBoolValue *openapi.MetadataBoolValue if source != nil { diff --git a/internal/converter/generated/openapi_mlmd_converter.gen.go b/internal/converter/generated/openapi_mlmd_converter.gen.go old mode 100755 new mode 100644 index 222bcba75..3626b05a0 --- a/internal/converter/generated/openapi_mlmd_converter.gen.go +++ b/internal/converter/generated/openapi_mlmd_converter.gen.go @@ -1,4 +1,5 @@ // Code generated by github.com/jmattheis/goverter, DO NOT EDIT. +//go:build !goverter package generated @@ -32,22 +33,18 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertDocArtifact(source *converter.OpenAP if (*source).Model != nil { pString2 = (*source).Model.Uri } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoArtifact.Uri = &xstring } - protoArtifact.Uri = pString3 - var pString4 *string + var pString3 *string if (*source).Model != nil { - pString4 = (*source).Model.ExternalId + pString3 = (*source).Model.ExternalId } - var pString5 *string - if pString4 != nil { - xstring2 := *pString4 - pString5 = &xstring2 + if pString3 != nil { + xstring2 := *pString3 + protoArtifact.ExternalId = &xstring2 } - protoArtifact.ExternalId = pString5 mapStringPProtoValue, err := converter.MapDocArtifactProperties((*source).Model) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) @@ -96,12 +93,10 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertInferenceService(source *converter.O if (*source).Model != nil { pString2 = (*source).Model.ExternalId } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoContext.ExternalId = &xstring } - protoContext.ExternalId = pString3 mapStringPProtoValue, err := converter.MapInferenceServiceProperties((*source).Model) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) @@ -141,22 +136,18 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertModelArtifact(source *converter.Open if (*source).Model != nil { pString2 = (*source).Model.Uri } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoArtifact.Uri = &xstring } - protoArtifact.Uri = pString3 - var pString4 *string + var pString3 *string if (*source).Model != nil { - pString4 = (*source).Model.ExternalId + pString3 = (*source).Model.ExternalId } - var pString5 *string - if pString4 != nil { - xstring2 := *pString4 - pString5 = &xstring2 + if pString3 != nil { + xstring2 := *pString3 + protoArtifact.ExternalId = &xstring2 } - protoArtifact.ExternalId = pString5 mapStringPProtoValue, err := converter.MapModelArtifactProperties((*source).Model) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) @@ -205,12 +196,10 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertModelVersion(source *converter.OpenA if (*source).Model != nil { pString2 = (*source).Model.ExternalId } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoContext.ExternalId = &xstring } - protoContext.ExternalId = pString3 mapStringPProtoValue, err := converter.MapModelVersionProperties(source) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) @@ -246,25 +235,21 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertRegisteredModel(source *converter.Op if (*source).Model != nil { pString2 = (*source).Model.Name } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoContext.Name = &xstring } - protoContext.Name = pString3 pInt642 := (*source).TypeId protoContext.TypeId = &pInt642 protoContext.Type = converter.MapRegisteredModelType((*source).Model) - var pString4 *string + var pString3 *string if (*source).Model != nil { - pString4 = (*source).Model.ExternalId + pString3 = (*source).Model.ExternalId } - var pString5 *string - if pString4 != nil { - xstring2 := *pString4 - pString5 = &xstring2 + if pString3 != nil { + xstring2 := *pString3 + protoContext.ExternalId = &xstring2 } - protoContext.ExternalId = pString5 mapStringPProtoValue, err := converter.MapRegisteredModelProperties((*source).Model) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) @@ -304,12 +289,10 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertServeModel(source *converter.OpenAPI if (*source).Model != nil { pString2 = (*source).Model.ExternalId } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoExecution.ExternalId = &xstring } - protoExecution.ExternalId = pString3 var pOpenapiExecutionState *openapi.ExecutionState if (*source).Model != nil { pOpenapiExecutionState = (*source).Model.LastKnownState @@ -354,25 +337,21 @@ func (c *OpenAPIToMLMDConverterImpl) ConvertServingEnvironment(source *converter if (*source).Model != nil { pString2 = (*source).Model.Name } - var pString3 *string if pString2 != nil { xstring := *pString2 - pString3 = &xstring + protoContext.Name = &xstring } - protoContext.Name = pString3 pInt642 := (*source).TypeId protoContext.TypeId = &pInt642 protoContext.Type = converter.MapServingEnvironmentType((*source).Model) - var pString4 *string + var pString3 *string if (*source).Model != nil { - pString4 = (*source).Model.ExternalId + pString3 = (*source).Model.ExternalId } - var pString5 *string - if pString4 != nil { - xstring2 := *pString4 - pString5 = &xstring2 + if pString3 != nil { + xstring2 := *pString3 + protoContext.ExternalId = &xstring2 } - protoContext.ExternalId = pString5 mapStringPProtoValue, err := converter.MapServingEnvironmentProperties((*source).Model) if err != nil { return nil, fmt.Errorf("error setting field Properties: %w", err) diff --git a/internal/converter/generated/openapi_reconciler.gen.go b/internal/converter/generated/openapi_reconciler.gen.go new file mode 100644 index 000000000..fcfccce90 --- /dev/null +++ b/internal/converter/generated/openapi_reconciler.gen.go @@ -0,0 +1,556 @@ +// Code generated by github.com/jmattheis/goverter, DO NOT EDIT. +//go:build !goverter + +package generated + +import ( + "fmt" + converter "github.com/kubeflow/model-registry/internal/converter" + openapi "github.com/kubeflow/model-registry/pkg/openapi" +) + +type OpenAPIReconcilerImpl struct{} + +func (c *OpenAPIReconcilerImpl) UpdateExistingDocArtifact(source converter.OpenapiUpdateWrapper[openapi.DocArtifact]) (openapi.DocArtifact, error) { + openapiDocArtifact := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiDocArtifact.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiDocArtifact.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiDocArtifact.ExternalId = &xstring2 + } + var pString3 *string + if source.Update != nil { + pString3 = source.Update.Uri + } + if pString3 != nil { + xstring3 := *pString3 + openapiDocArtifact.Uri = &xstring3 + } + var pOpenapiArtifactState *openapi.ArtifactState + if source.Update != nil { + pOpenapiArtifactState = source.Update.State + } + if pOpenapiArtifactState != nil { + openapiArtifactState, err := c.openapiArtifactStateToOpenapiArtifactState(*pOpenapiArtifactState) + if err != nil { + return openapiDocArtifact, fmt.Errorf("error setting field State: %w", err) + } + openapiDocArtifact.State = &openapiArtifactState + } + return openapiDocArtifact, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingInferenceService(source converter.OpenapiUpdateWrapper[openapi.InferenceService]) (openapi.InferenceService, error) { + openapiInferenceService := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiInferenceService.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiInferenceService.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiInferenceService.ExternalId = &xstring2 + } + var pString3 *string + if source.Update != nil { + pString3 = source.Update.ModelVersionId + } + if pString3 != nil { + xstring3 := *pString3 + openapiInferenceService.ModelVersionId = &xstring3 + } + var pString4 *string + if source.Update != nil { + pString4 = source.Update.Runtime + } + if pString4 != nil { + xstring4 := *pString4 + openapiInferenceService.Runtime = &xstring4 + } + var pOpenapiInferenceServiceState *openapi.InferenceServiceState + if source.Update != nil { + pOpenapiInferenceServiceState = source.Update.DesiredState + } + if pOpenapiInferenceServiceState != nil { + openapiInferenceServiceState, err := c.openapiInferenceServiceStateToOpenapiInferenceServiceState(*pOpenapiInferenceServiceState) + if err != nil { + return openapiInferenceService, fmt.Errorf("error setting field DesiredState: %w", err) + } + openapiInferenceService.DesiredState = &openapiInferenceServiceState + } + return openapiInferenceService, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingModelArtifact(source converter.OpenapiUpdateWrapper[openapi.ModelArtifact]) (openapi.ModelArtifact, error) { + openapiModelArtifact := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiModelArtifact.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiModelArtifact.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiModelArtifact.ExternalId = &xstring2 + } + var pString3 *string + if source.Update != nil { + pString3 = source.Update.Uri + } + if pString3 != nil { + xstring3 := *pString3 + openapiModelArtifact.Uri = &xstring3 + } + var pOpenapiArtifactState *openapi.ArtifactState + if source.Update != nil { + pOpenapiArtifactState = source.Update.State + } + if pOpenapiArtifactState != nil { + openapiArtifactState, err := c.openapiArtifactStateToOpenapiArtifactState(*pOpenapiArtifactState) + if err != nil { + return openapiModelArtifact, fmt.Errorf("error setting field State: %w", err) + } + openapiModelArtifact.State = &openapiArtifactState + } + var pString4 *string + if source.Update != nil { + pString4 = source.Update.ModelFormatName + } + if pString4 != nil { + xstring4 := *pString4 + openapiModelArtifact.ModelFormatName = &xstring4 + } + var pString5 *string + if source.Update != nil { + pString5 = source.Update.StorageKey + } + if pString5 != nil { + xstring5 := *pString5 + openapiModelArtifact.StorageKey = &xstring5 + } + var pString6 *string + if source.Update != nil { + pString6 = source.Update.StoragePath + } + if pString6 != nil { + xstring6 := *pString6 + openapiModelArtifact.StoragePath = &xstring6 + } + var pString7 *string + if source.Update != nil { + pString7 = source.Update.ModelFormatVersion + } + if pString7 != nil { + xstring7 := *pString7 + openapiModelArtifact.ModelFormatVersion = &xstring7 + } + var pString8 *string + if source.Update != nil { + pString8 = source.Update.ServiceAccountName + } + if pString8 != nil { + xstring8 := *pString8 + openapiModelArtifact.ServiceAccountName = &xstring8 + } + return openapiModelArtifact, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingModelVersion(source converter.OpenapiUpdateWrapper[openapi.ModelVersion]) (openapi.ModelVersion, error) { + openapiModelVersion := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiModelVersion.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiModelVersion.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiModelVersion.ExternalId = &xstring2 + } + var pOpenapiModelVersionState *openapi.ModelVersionState + if source.Update != nil { + pOpenapiModelVersionState = source.Update.State + } + if pOpenapiModelVersionState != nil { + openapiModelVersionState, err := c.openapiModelVersionStateToOpenapiModelVersionState(*pOpenapiModelVersionState) + if err != nil { + return openapiModelVersion, fmt.Errorf("error setting field State: %w", err) + } + openapiModelVersion.State = &openapiModelVersionState + } + var pString3 *string + if source.Update != nil { + pString3 = source.Update.Author + } + if pString3 != nil { + xstring3 := *pString3 + openapiModelVersion.Author = &xstring3 + } + return openapiModelVersion, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingRegisteredModel(source converter.OpenapiUpdateWrapper[openapi.RegisteredModel]) (openapi.RegisteredModel, error) { + openapiRegisteredModel := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiRegisteredModel.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiRegisteredModel.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiRegisteredModel.ExternalId = &xstring2 + } + var pString3 *string + if source.Update != nil { + pString3 = source.Update.Owner + } + if pString3 != nil { + xstring3 := *pString3 + openapiRegisteredModel.Owner = &xstring3 + } + var pOpenapiRegisteredModelState *openapi.RegisteredModelState + if source.Update != nil { + pOpenapiRegisteredModelState = source.Update.State + } + if pOpenapiRegisteredModelState != nil { + openapiRegisteredModelState, err := c.openapiRegisteredModelStateToOpenapiRegisteredModelState(*pOpenapiRegisteredModelState) + if err != nil { + return openapiRegisteredModel, fmt.Errorf("error setting field State: %w", err) + } + openapiRegisteredModel.State = &openapiRegisteredModelState + } + return openapiRegisteredModel, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingServeModel(source converter.OpenapiUpdateWrapper[openapi.ServeModel]) (openapi.ServeModel, error) { + openapiServeModel := converter.InitWithExisting(source) + var pOpenapiExecutionState *openapi.ExecutionState + if source.Update != nil { + pOpenapiExecutionState = source.Update.LastKnownState + } + if pOpenapiExecutionState != nil { + openapiExecutionState, err := c.openapiExecutionStateToOpenapiExecutionState(*pOpenapiExecutionState) + if err != nil { + return openapiServeModel, fmt.Errorf("error setting field LastKnownState: %w", err) + } + openapiServeModel.LastKnownState = &openapiExecutionState + } + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiServeModel.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiServeModel.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiServeModel.ExternalId = &xstring2 + } + return openapiServeModel, nil +} +func (c *OpenAPIReconcilerImpl) UpdateExistingServingEnvironment(source converter.OpenapiUpdateWrapper[openapi.ServingEnvironment]) (openapi.ServingEnvironment, error) { + openapiServingEnvironment := converter.InitWithExisting(source) + var pMapStringOpenapiMetadataValue *map[string]openapi.MetadataValue + if source.Update != nil { + pMapStringOpenapiMetadataValue = source.Update.CustomProperties + } + if pMapStringOpenapiMetadataValue != nil { + var mapStringOpenapiMetadataValue map[string]openapi.MetadataValue + if (*pMapStringOpenapiMetadataValue) != nil { + mapStringOpenapiMetadataValue = make(map[string]openapi.MetadataValue, len((*pMapStringOpenapiMetadataValue))) + for key, value := range *pMapStringOpenapiMetadataValue { + mapStringOpenapiMetadataValue[key] = c.openapiMetadataValueToOpenapiMetadataValue(value) + } + } + openapiServingEnvironment.CustomProperties = &mapStringOpenapiMetadataValue + } + var pString *string + if source.Update != nil { + pString = source.Update.Description + } + if pString != nil { + xstring := *pString + openapiServingEnvironment.Description = &xstring + } + var pString2 *string + if source.Update != nil { + pString2 = source.Update.ExternalId + } + if pString2 != nil { + xstring2 := *pString2 + openapiServingEnvironment.ExternalId = &xstring2 + } + return openapiServingEnvironment, nil +} +func (c *OpenAPIReconcilerImpl) openapiArtifactStateToOpenapiArtifactState(source openapi.ArtifactState) (openapi.ArtifactState, error) { + var openapiArtifactState openapi.ArtifactState + switch source { + case openapi.ARTIFACTSTATE_ABANDONED: + openapiArtifactState = openapi.ARTIFACTSTATE_ABANDONED + case openapi.ARTIFACTSTATE_DELETED: + openapiArtifactState = openapi.ARTIFACTSTATE_DELETED + case openapi.ARTIFACTSTATE_LIVE: + openapiArtifactState = openapi.ARTIFACTSTATE_LIVE + case openapi.ARTIFACTSTATE_MARKED_FOR_DELETION: + openapiArtifactState = openapi.ARTIFACTSTATE_MARKED_FOR_DELETION + case openapi.ARTIFACTSTATE_PENDING: + openapiArtifactState = openapi.ARTIFACTSTATE_PENDING + case openapi.ARTIFACTSTATE_REFERENCE: + openapiArtifactState = openapi.ARTIFACTSTATE_REFERENCE + case openapi.ARTIFACTSTATE_UNKNOWN: + openapiArtifactState = openapi.ARTIFACTSTATE_UNKNOWN + default: + return openapiArtifactState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiArtifactState, nil +} +func (c *OpenAPIReconcilerImpl) openapiExecutionStateToOpenapiExecutionState(source openapi.ExecutionState) (openapi.ExecutionState, error) { + var openapiExecutionState openapi.ExecutionState + switch source { + case openapi.EXECUTIONSTATE_CACHED: + openapiExecutionState = openapi.EXECUTIONSTATE_CACHED + case openapi.EXECUTIONSTATE_CANCELED: + openapiExecutionState = openapi.EXECUTIONSTATE_CANCELED + case openapi.EXECUTIONSTATE_COMPLETE: + openapiExecutionState = openapi.EXECUTIONSTATE_COMPLETE + case openapi.EXECUTIONSTATE_FAILED: + openapiExecutionState = openapi.EXECUTIONSTATE_FAILED + case openapi.EXECUTIONSTATE_NEW: + openapiExecutionState = openapi.EXECUTIONSTATE_NEW + case openapi.EXECUTIONSTATE_RUNNING: + openapiExecutionState = openapi.EXECUTIONSTATE_RUNNING + case openapi.EXECUTIONSTATE_UNKNOWN: + openapiExecutionState = openapi.EXECUTIONSTATE_UNKNOWN + default: + return openapiExecutionState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiExecutionState, nil +} +func (c *OpenAPIReconcilerImpl) openapiInferenceServiceStateToOpenapiInferenceServiceState(source openapi.InferenceServiceState) (openapi.InferenceServiceState, error) { + var openapiInferenceServiceState openapi.InferenceServiceState + switch source { + case openapi.INFERENCESERVICESTATE_DEPLOYED: + openapiInferenceServiceState = openapi.INFERENCESERVICESTATE_DEPLOYED + case openapi.INFERENCESERVICESTATE_UNDEPLOYED: + openapiInferenceServiceState = openapi.INFERENCESERVICESTATE_UNDEPLOYED + default: + return openapiInferenceServiceState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiInferenceServiceState, nil +} +func (c *OpenAPIReconcilerImpl) openapiMetadataValueToOpenapiMetadataValue(source openapi.MetadataValue) openapi.MetadataValue { + var openapiMetadataValue openapi.MetadataValue + openapiMetadataValue.MetadataBoolValue = c.pOpenapiMetadataBoolValueToPOpenapiMetadataBoolValue(source.MetadataBoolValue) + openapiMetadataValue.MetadataDoubleValue = c.pOpenapiMetadataDoubleValueToPOpenapiMetadataDoubleValue(source.MetadataDoubleValue) + openapiMetadataValue.MetadataIntValue = c.pOpenapiMetadataIntValueToPOpenapiMetadataIntValue(source.MetadataIntValue) + openapiMetadataValue.MetadataProtoValue = c.pOpenapiMetadataProtoValueToPOpenapiMetadataProtoValue(source.MetadataProtoValue) + openapiMetadataValue.MetadataStringValue = c.pOpenapiMetadataStringValueToPOpenapiMetadataStringValue(source.MetadataStringValue) + openapiMetadataValue.MetadataStructValue = c.pOpenapiMetadataStructValueToPOpenapiMetadataStructValue(source.MetadataStructValue) + return openapiMetadataValue +} +func (c *OpenAPIReconcilerImpl) openapiModelVersionStateToOpenapiModelVersionState(source openapi.ModelVersionState) (openapi.ModelVersionState, error) { + var openapiModelVersionState openapi.ModelVersionState + switch source { + case openapi.MODELVERSIONSTATE_ARCHIVED: + openapiModelVersionState = openapi.MODELVERSIONSTATE_ARCHIVED + case openapi.MODELVERSIONSTATE_LIVE: + openapiModelVersionState = openapi.MODELVERSIONSTATE_LIVE + default: + return openapiModelVersionState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiModelVersionState, nil +} +func (c *OpenAPIReconcilerImpl) openapiRegisteredModelStateToOpenapiRegisteredModelState(source openapi.RegisteredModelState) (openapi.RegisteredModelState, error) { + var openapiRegisteredModelState openapi.RegisteredModelState + switch source { + case openapi.REGISTEREDMODELSTATE_ARCHIVED: + openapiRegisteredModelState = openapi.REGISTEREDMODELSTATE_ARCHIVED + case openapi.REGISTEREDMODELSTATE_LIVE: + openapiRegisteredModelState = openapi.REGISTEREDMODELSTATE_LIVE + default: + return openapiRegisteredModelState, fmt.Errorf("unexpected enum element: %v", source) + } + return openapiRegisteredModelState, nil +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataBoolValueToPOpenapiMetadataBoolValue(source *openapi.MetadataBoolValue) *openapi.MetadataBoolValue { + var pOpenapiMetadataBoolValue *openapi.MetadataBoolValue + if source != nil { + var openapiMetadataBoolValue openapi.MetadataBoolValue + openapiMetadataBoolValue.BoolValue = (*source).BoolValue + openapiMetadataBoolValue.MetadataType = (*source).MetadataType + pOpenapiMetadataBoolValue = &openapiMetadataBoolValue + } + return pOpenapiMetadataBoolValue +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataDoubleValueToPOpenapiMetadataDoubleValue(source *openapi.MetadataDoubleValue) *openapi.MetadataDoubleValue { + var pOpenapiMetadataDoubleValue *openapi.MetadataDoubleValue + if source != nil { + var openapiMetadataDoubleValue openapi.MetadataDoubleValue + openapiMetadataDoubleValue.DoubleValue = (*source).DoubleValue + openapiMetadataDoubleValue.MetadataType = (*source).MetadataType + pOpenapiMetadataDoubleValue = &openapiMetadataDoubleValue + } + return pOpenapiMetadataDoubleValue +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataIntValueToPOpenapiMetadataIntValue(source *openapi.MetadataIntValue) *openapi.MetadataIntValue { + var pOpenapiMetadataIntValue *openapi.MetadataIntValue + if source != nil { + var openapiMetadataIntValue openapi.MetadataIntValue + openapiMetadataIntValue.IntValue = (*source).IntValue + openapiMetadataIntValue.MetadataType = (*source).MetadataType + pOpenapiMetadataIntValue = &openapiMetadataIntValue + } + return pOpenapiMetadataIntValue +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataProtoValueToPOpenapiMetadataProtoValue(source *openapi.MetadataProtoValue) *openapi.MetadataProtoValue { + var pOpenapiMetadataProtoValue *openapi.MetadataProtoValue + if source != nil { + var openapiMetadataProtoValue openapi.MetadataProtoValue + openapiMetadataProtoValue.Type = (*source).Type + openapiMetadataProtoValue.ProtoValue = (*source).ProtoValue + openapiMetadataProtoValue.MetadataType = (*source).MetadataType + pOpenapiMetadataProtoValue = &openapiMetadataProtoValue + } + return pOpenapiMetadataProtoValue +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataStringValueToPOpenapiMetadataStringValue(source *openapi.MetadataStringValue) *openapi.MetadataStringValue { + var pOpenapiMetadataStringValue *openapi.MetadataStringValue + if source != nil { + var openapiMetadataStringValue openapi.MetadataStringValue + openapiMetadataStringValue.StringValue = (*source).StringValue + openapiMetadataStringValue.MetadataType = (*source).MetadataType + pOpenapiMetadataStringValue = &openapiMetadataStringValue + } + return pOpenapiMetadataStringValue +} +func (c *OpenAPIReconcilerImpl) pOpenapiMetadataStructValueToPOpenapiMetadataStructValue(source *openapi.MetadataStructValue) *openapi.MetadataStructValue { + var pOpenapiMetadataStructValue *openapi.MetadataStructValue + if source != nil { + var openapiMetadataStructValue openapi.MetadataStructValue + openapiMetadataStructValue.StructValue = (*source).StructValue + openapiMetadataStructValue.MetadataType = (*source).MetadataType + pOpenapiMetadataStructValue = &openapiMetadataStructValue + } + return pOpenapiMetadataStructValue +} diff --git a/internal/converter/openapi_converter.go b/internal/converter/openapi_converter.go index cbd17d0f0..60a4c41d2 100644 --- a/internal/converter/openapi_converter.go +++ b/internal/converter/openapi_converter.go @@ -10,6 +10,7 @@ import "github.com/kubeflow/model-registry/pkg/openapi" // goverter:converter // goverter:output:file ./generated/openapi_converter.gen.go // goverter:wrapErrors +// goverter:enum:unknown @error // goverter:matchIgnoreCase // goverter:useZeroValueOnPointerInconsistency type OpenAPIConverter interface { @@ -50,43 +51,43 @@ type OpenAPIConverter interface { ConvertServeModelUpdate(source *openapi.ServeModelUpdate) (*openapi.ServeModel, error) // Ignore all fields that ARE editable - // goverter:default InitRegisteredModelWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties State Owner OverrideNotEditableForRegisteredModel(source OpenapiUpdateWrapper[openapi.RegisteredModel]) (openapi.RegisteredModel, error) // Ignore all fields that ARE editable - // goverter:default InitModelVersionWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties State Author OverrideNotEditableForModelVersion(source OpenapiUpdateWrapper[openapi.ModelVersion]) (openapi.ModelVersion, error) // Ignore all fields that ARE editable - // goverter:default InitDocArtifactWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id Name ArtifactType CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties Uri State OverrideNotEditableForDocArtifact(source OpenapiUpdateWrapper[openapi.DocArtifact]) (openapi.DocArtifact, error) // Ignore all fields that ARE editable - // goverter:default InitModelArtifactWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties Uri State ServiceAccountName ModelFormatName ModelFormatVersion StorageKey StoragePath OverrideNotEditableForModelArtifact(source OpenapiUpdateWrapper[openapi.ModelArtifact]) (openapi.ModelArtifact, error) // Ignore all fields that ARE editable - // goverter:default InitServingEnvironmentWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties OverrideNotEditableForServingEnvironment(source OpenapiUpdateWrapper[openapi.ServingEnvironment]) (openapi.ServingEnvironment, error) // Ignore all fields that ARE editable - // goverter:default InitInferenceServiceWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties ModelVersionId Runtime DesiredState OverrideNotEditableForInferenceService(source OpenapiUpdateWrapper[openapi.InferenceService]) (openapi.InferenceService, error) // Ignore all fields that ARE editable - // goverter:default InitServeModelWithUpdate + // goverter:default InitWithUpdate // goverter:autoMap Existing // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Description ExternalId CustomProperties LastKnownState OverrideNotEditableForServeModel(source OpenapiUpdateWrapper[openapi.ServeModel]) (openapi.ServeModel, error) diff --git a/internal/converter/openapi_converter_util.go b/internal/converter/openapi_converter_util.go index a0efb5cb0..816fe1113 100644 --- a/internal/converter/openapi_converter_util.go +++ b/internal/converter/openapi_converter_util.go @@ -28,51 +28,14 @@ func NewOpenapiUpdateWrapper[ } } -func InitRegisteredModelWithUpdate(source OpenapiUpdateWrapper[openapi.RegisteredModel]) openapi.RegisteredModel { - if source.Update != nil { - return *source.Update - } - return openapi.RegisteredModel{} -} - -func InitModelVersionWithUpdate(source OpenapiUpdateWrapper[openapi.ModelVersion]) openapi.ModelVersion { - if source.Update != nil { - return *source.Update - } - return openapi.ModelVersion{} -} - -func InitDocArtifactWithUpdate(source OpenapiUpdateWrapper[openapi.DocArtifact]) openapi.DocArtifact { - if source.Update != nil { - return *source.Update - } - return openapi.DocArtifact{} -} - -func InitModelArtifactWithUpdate(source OpenapiUpdateWrapper[openapi.ModelArtifact]) openapi.ModelArtifact { - if source.Update != nil { - return *source.Update - } - return openapi.ModelArtifact{} -} - -func InitServingEnvironmentWithUpdate(source OpenapiUpdateWrapper[openapi.ServingEnvironment]) openapi.ServingEnvironment { - if source.Update != nil { - return *source.Update - } - return openapi.ServingEnvironment{} -} - -func InitInferenceServiceWithUpdate(source OpenapiUpdateWrapper[openapi.InferenceService]) openapi.InferenceService { - if source.Update != nil { - return *source.Update - } - return openapi.InferenceService{} +func InitWithExisting[M OpenAPIModel](source OpenapiUpdateWrapper[M]) M { + return *source.Existing } -func InitServeModelWithUpdate(source OpenapiUpdateWrapper[openapi.ServeModel]) openapi.ServeModel { +func InitWithUpdate[M OpenAPIModel](source OpenapiUpdateWrapper[M]) M { if source.Update != nil { return *source.Update } - return openapi.ServeModel{} + var m M + return m } diff --git a/internal/converter/openapi_reconciler.go b/internal/converter/openapi_reconciler.go new file mode 100644 index 000000000..47cd33956 --- /dev/null +++ b/internal/converter/openapi_reconciler.go @@ -0,0 +1,56 @@ +package converter + +import "github.com/kubeflow/model-registry/pkg/openapi" + +// NOTE: methods must follow these patterns, otherwise tests could not find possible issues: +// Converters patch fields entity: UpdateExisting + +// goverter:converter +// goverter:output:file ./generated/openapi_reconciler.gen.go +// goverter:wrapErrors +// goverter:enum:unknown @error +// goverter:matchIgnoreCase +// goverter:useZeroValueOnPointerInconsistency +type OpenAPIReconciler interface { + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name + UpdateExistingRegisteredModel(source OpenapiUpdateWrapper[openapi.RegisteredModel]) (openapi.RegisteredModel, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name RegisteredModelId + UpdateExistingModelVersion(source OpenapiUpdateWrapper[openapi.ModelVersion]) (openapi.ModelVersion, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name ArtifactType + UpdateExistingDocArtifact(source OpenapiUpdateWrapper[openapi.DocArtifact]) (openapi.DocArtifact, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name ArtifactType + UpdateExistingModelArtifact(source OpenapiUpdateWrapper[openapi.ModelArtifact]) (openapi.ModelArtifact, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name + UpdateExistingServingEnvironment(source OpenapiUpdateWrapper[openapi.ServingEnvironment]) (openapi.ServingEnvironment, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name RegisteredModelId ServingEnvironmentId + UpdateExistingInferenceService(source OpenapiUpdateWrapper[openapi.InferenceService]) (openapi.InferenceService, error) + + // Ignore all fields that can't be updated + // goverter:default InitWithExisting + // goverter:autoMap Update + // goverter:ignore Id CreateTimeSinceEpoch LastUpdateTimeSinceEpoch Name ModelVersionId + UpdateExistingServeModel(source OpenapiUpdateWrapper[openapi.ServeModel]) (openapi.ServeModel, error) +} diff --git a/internal/server/openapi/api_model_registry_service_service.go b/internal/server/openapi/api_model_registry_service_service.go index 5ee8e3a67..5ec322fa7 100644 --- a/internal/server/openapi/api_model_registry_service_service.go +++ b/internal/server/openapi/api_model_registry_service_service.go @@ -24,15 +24,17 @@ import ( // This service should implement the business logic for every endpoint for the ModelRegistryServiceAPI s.coreApi. // Include any external packages or services that will be required by this service. type ModelRegistryServiceAPIService struct { - coreApi api.ModelRegistryApi - converter converter.OpenAPIConverter + coreApi api.ModelRegistryApi + converter converter.OpenAPIConverter + reconciler converter.OpenAPIReconciler } // NewModelRegistryServiceAPIService creates a default api service func NewModelRegistryServiceAPIService(coreApi api.ModelRegistryApi) ModelRegistryServiceAPIServicer { return &ModelRegistryServiceAPIService{ - coreApi: coreApi, - converter: &generated.OpenAPIConverterImpl{}, + coreApi: coreApi, + converter: &generated.OpenAPIConverterImpl{}, + reconciler: &generated.OpenAPIReconcilerImpl{}, } } @@ -450,7 +452,16 @@ func (s *ModelRegistryServiceAPIService) UpdateInferenceService(ctx context.Cont return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil } entity.Id = &inferenceserviceId - result, err := s.coreApi.UpsertInferenceService(entity) + existing, err := s.coreApi.GetInferenceServiceById(inferenceserviceId) + if err != nil { + status := api.ErrToStatus(err) + return Response(status, model.Error{Message: err.Error()}), nil + } + update, err := s.reconciler.UpdateExistingInferenceService(converter.NewOpenapiUpdateWrapper(existing, entity)) + if err != nil { + return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil + } + result, err := s.coreApi.UpsertInferenceService(&update) if err != nil { status := api.ErrToStatus(err) return Response(status, model.Error{Message: err.Error()}), nil @@ -466,7 +477,16 @@ func (s *ModelRegistryServiceAPIService) UpdateModelArtifact(ctx context.Context return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil } modelArtifact.Id = &modelartifactId - result, err := s.coreApi.UpsertModelArtifact(modelArtifact, nil) + existing, err := s.coreApi.GetModelArtifactById(modelartifactId) + if err != nil { + status := api.ErrToStatus(err) + return Response(status, model.Error{Message: err.Error()}), nil + } + update, err := s.reconciler.UpdateExistingModelArtifact(converter.NewOpenapiUpdateWrapper(existing, modelArtifact)) + if err != nil { + return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil + } + result, err := s.coreApi.UpsertModelArtifact(&update, nil) if err != nil { status := api.ErrToStatus(err) return Response(status, model.Error{Message: err.Error()}), nil @@ -482,7 +502,16 @@ func (s *ModelRegistryServiceAPIService) UpdateModelVersion(ctx context.Context, return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil } modelVersion.Id = &modelversionId - result, err := s.coreApi.UpsertModelVersion(modelVersion, nil) + existing, err := s.coreApi.GetModelVersionById(modelversionId) + if err != nil { + status := api.ErrToStatus(err) + return Response(status, model.Error{Message: err.Error()}), nil + } + update, err := s.reconciler.UpdateExistingModelVersion(converter.NewOpenapiUpdateWrapper(existing, modelVersion)) + if err != nil { + return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil + } + result, err := s.coreApi.UpsertModelVersion(&update, nil) if err != nil { status := api.ErrToStatus(err) return Response(status, model.Error{Message: err.Error()}), nil @@ -498,7 +527,16 @@ func (s *ModelRegistryServiceAPIService) UpdateRegisteredModel(ctx context.Conte return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil } registeredModel.Id = ®isteredmodelId - result, err := s.coreApi.UpsertRegisteredModel(registeredModel) + existing, err := s.coreApi.GetRegisteredModelById(registeredmodelId) + if err != nil { + status := api.ErrToStatus(err) + return Response(status, model.Error{Message: err.Error()}), nil + } + update, err := s.reconciler.UpdateExistingRegisteredModel(converter.NewOpenapiUpdateWrapper(existing, registeredModel)) + if err != nil { + return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil + } + result, err := s.coreApi.UpsertRegisteredModel(&update) if err != nil { status := api.ErrToStatus(err) return Response(status, model.Error{Message: err.Error()}), nil @@ -514,7 +552,16 @@ func (s *ModelRegistryServiceAPIService) UpdateServingEnvironment(ctx context.Co return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil } entity.Id = &servingenvironmentId - result, err := s.coreApi.UpsertServingEnvironment(entity) + existing, err := s.coreApi.GetServingEnvironmentById(servingenvironmentId) + if err != nil { + status := api.ErrToStatus(err) + return Response(status, model.Error{Message: err.Error()}), nil + } + update, err := s.reconciler.UpdateExistingServingEnvironment(converter.NewOpenapiUpdateWrapper(existing, entity)) + if err != nil { + return Response(http.StatusBadRequest, model.Error{Message: err.Error()}), nil + } + result, err := s.coreApi.UpsertServingEnvironment(&update) if err != nil { status := api.ErrToStatus(err) return Response(status, model.Error{Message: err.Error()}), nil diff --git a/test/robot/MRkeywords.resource b/test/robot/MRkeywords.resource index 46bc0f050..b52afdf11 100644 --- a/test/robot/MRkeywords.resource +++ b/test/robot/MRkeywords.resource @@ -38,6 +38,16 @@ I create a RegisteredModel RETURN ${result} +I update a RegisteredModel + [Arguments] ${id} ${payload} + IF $MODE == "REST" + ${resp} PATCH url=http://${MR_HOST}:${MR_PORT}/api/model_registry/v1alpha3/registered_models/${id} json=&{payload} expected_status=200 + Log to console ${resp.json()} + ${result} Set Variable ${resp.json()['id']} + END + RETURN ${result} + + I create a child ModelVersion having [Arguments] ${registeredModelID} ${name} IF $MODE == "REST" diff --git a/test/robot/UserStory.robot b/test/robot/UserStory.robot index 8121bf069..cdc617749 100644 --- a/test/robot/UserStory.robot +++ b/test/robot/UserStory.robot @@ -41,6 +41,15 @@ As a MLOps engineer I would like to store a description of the model ${r} Then I findModelArtifact by name and parentResourceId name=ModelArtifactName parentResourceId=${vId} And Should be equal ${r["description"]} sed do eiusmod tempor incididunt +As a MLOps engineer I would like to update a description of the model + Set To Dictionary ${registered_model} description=Lorem ipsum dolor sit amet name=${name} owner=me + ${rId} Given I create a RegisteredModel payload=${registered_model} + &{registered_model_update} Create dictionary description=New description + ${rId} And I update a RegisteredModel id=${rId} payload=${registered_model_update} + ${r} Then I get RegisteredModelByID id=${rId} + And Should be equal ${r["description"]} New description + And Should be equal ${r["owner"]} me + As a MLOps engineer I would like to store a longer documentation for the model Set To Dictionary ${registered_model} description=Lorem ipsum dolor sit amet name=${name} Set To Dictionary ${model_version} description=consectetur adipiscing elit