github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/repository/repository.go (about)

     1  package repository
     2  
     3  import (
     4  	"encoding/json"
     5  	"errors"
     6  	"fmt"
     7  	"strconv"
     8  	"strings"
     9  
    10  	"github.com/jfrog/jfrog-cli-core/v2/artifactory/commands/utils"
    11  	rtUtils "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
    12  	"github.com/jfrog/jfrog-cli-core/v2/utils/config"
    13  	"github.com/jfrog/jfrog-cli-core/v2/utils/ioutils"
    14  	"github.com/jfrog/jfrog-client-go/artifactory"
    15  	"github.com/jfrog/jfrog-client-go/artifactory/services"
    16  	"github.com/jfrog/jfrog-client-go/utils/errorutils"
    17  )
    18  
    19  const (
    20  	// The actual field in the repository configuration is an array (plural) but in practice only one environment is allowed.
    21  	// This is why the question differs from the repository configuration.
    22  	environmentsKey = "environments"
    23  )
    24  
    25  type RepoCommand struct {
    26  	serverDetails *config.ServerDetails
    27  	templatePath  string
    28  	vars          string
    29  }
    30  
    31  func (rc *RepoCommand) Vars() string {
    32  	return rc.vars
    33  }
    34  
    35  func (rc *RepoCommand) TemplatePath() string {
    36  	return rc.templatePath
    37  }
    38  
    39  func (rc *RepoCommand) PerformRepoCmd(isUpdate bool) (err error) {
    40  	repoConfigMap, err := utils.ConvertTemplateToMap(rc)
    41  	if err != nil {
    42  		return err
    43  	}
    44  	// All the values in the template are strings
    45  	// Go over the confMap and write the values with the correct type using the writersMap
    46  	for key, value := range repoConfigMap {
    47  		if err = utils.ValidateMapEntry(key, value, writersMap); err != nil {
    48  			return
    49  		}
    50  		if err = writersMap[key](&repoConfigMap, key, fmt.Sprint(value)); err != nil {
    51  			return
    52  		}
    53  	}
    54  	// Write a JSON with the correct values
    55  	content, err := json.Marshal(repoConfigMap)
    56  	if err != nil {
    57  		return err
    58  	}
    59  
    60  	servicesManager, err := rtUtils.CreateServiceManager(rc.serverDetails, -1, 0, false)
    61  	if err != nil {
    62  		return err
    63  	}
    64  	// Rclass and packageType are mandatory keys in our templates
    65  	// Using their values we'll pick the suitable handler from one of the handler maps to create/update a repository
    66  	var handlerFunc func(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error
    67  	packageType := fmt.Sprint(repoConfigMap[PackageType])
    68  	switch repoConfigMap[Rclass] {
    69  	case Local:
    70  		handlerFunc = localRepoHandlers[packageType]
    71  	case Remote:
    72  		handlerFunc = remoteRepoHandlers[packageType]
    73  	case Virtual:
    74  		handlerFunc = virtualRepoHandlers[packageType]
    75  	case Federated:
    76  		handlerFunc = federatedRepoHandlers[packageType]
    77  	default:
    78  		return errorutils.CheckErrorf("unsupported rclass: %s", repoConfigMap[Rclass])
    79  	}
    80  	if handlerFunc == nil {
    81  		return errors.New("unsupported package type: " + packageType)
    82  	}
    83  	return handlerFunc(servicesManager, content, isUpdate)
    84  }
    85  
    86  var writersMap = map[string]ioutils.AnswerWriter{
    87  	Key:                               ioutils.WriteStringAnswer,
    88  	Rclass:                            ioutils.WriteStringAnswer,
    89  	PackageType:                       ioutils.WriteStringAnswer,
    90  	MandatoryUrl:                      ioutils.WriteStringAnswer,
    91  	Url:                               ioutils.WriteStringAnswer,
    92  	Description:                       ioutils.WriteStringAnswer,
    93  	Notes:                             ioutils.WriteStringAnswer,
    94  	IncludePatterns:                   ioutils.WriteStringAnswer,
    95  	ExcludePatterns:                   ioutils.WriteStringAnswer,
    96  	RepoLayoutRef:                     ioutils.WriteStringAnswer,
    97  	ProjectKey:                        ioutils.WriteStringAnswer,
    98  	environmentsKey:                   ioutils.WriteStringArrayAnswer,
    99  	HandleReleases:                    ioutils.WriteBoolAnswer,
   100  	HandleSnapshots:                   ioutils.WriteBoolAnswer,
   101  	MaxUniqueSnapshots:                ioutils.WriteIntAnswer,
   102  	SuppressPomConsistencyChecks:      ioutils.WriteBoolAnswer,
   103  	BlackedOut:                        ioutils.WriteBoolAnswer,
   104  	DownloadRedirect:                  ioutils.WriteBoolAnswer,
   105  	BlockPushingSchema1:               ioutils.WriteBoolAnswer,
   106  	DebianTrivialLayout:               ioutils.WriteBoolAnswer,
   107  	ExternalDependenciesEnabled:       ioutils.WriteBoolAnswer,
   108  	ExternalDependenciesPatterns:      ioutils.WriteStringArrayAnswer,
   109  	ChecksumPolicyType:                ioutils.WriteStringAnswer,
   110  	MaxUniqueTags:                     ioutils.WriteIntAnswer,
   111  	SnapshotVersionBehavior:           ioutils.WriteStringAnswer,
   112  	XrayIndex:                         ioutils.WriteBoolAnswer,
   113  	PropertySets:                      ioutils.WriteStringArrayAnswer,
   114  	ArchiveBrowsingEnabled:            ioutils.WriteBoolAnswer,
   115  	CalculateYumMetadata:              ioutils.WriteBoolAnswer,
   116  	YumRootDepth:                      ioutils.WriteIntAnswer,
   117  	DockerApiVersion:                  ioutils.WriteStringAnswer,
   118  	EnableFileListsIndexing:           ioutils.WriteBoolAnswer,
   119  	OptionalIndexCompressionFormats:   ioutils.WriteStringArrayAnswer,
   120  	Username:                          ioutils.WriteStringAnswer,
   121  	Password:                          ioutils.WriteStringAnswer,
   122  	Proxy:                             ioutils.WriteStringAnswer,
   123  	RemoteRepoChecksumPolicyType:      ioutils.WriteStringAnswer,
   124  	HardFail:                          ioutils.WriteBoolAnswer,
   125  	Offline:                           ioutils.WriteBoolAnswer,
   126  	StoreArtifactsLocally:             ioutils.WriteBoolAnswer,
   127  	SocketTimeoutMillis:               ioutils.WriteIntAnswer,
   128  	LocalAddress:                      ioutils.WriteStringAnswer,
   129  	RetrievalCachePeriodSecs:          ioutils.WriteIntAnswer,
   130  	FailedRetrievalCachePeriodSecs:    ioutils.WriteIntAnswer,
   131  	MissedRetrievalCachePeriodSecs:    ioutils.WriteIntAnswer,
   132  	UnusedArtifactsCleanupEnabled:     ioutils.WriteBoolAnswer,
   133  	UnusedArtifactsCleanupPeriodHours: ioutils.WriteIntAnswer,
   134  	AssumedOfflinePeriodSecs:          ioutils.WriteIntAnswer,
   135  	FetchJarsEagerly:                  ioutils.WriteBoolAnswer,
   136  	FetchSourcesEagerly:               ioutils.WriteBoolAnswer,
   137  	ShareConfiguration:                ioutils.WriteBoolAnswer,
   138  	SynchronizeProperties:             ioutils.WriteBoolAnswer,
   139  	BlockMismatchingMimeTypes:         ioutils.WriteBoolAnswer,
   140  	AllowAnyHostAuth:                  ioutils.WriteBoolAnswer,
   141  	EnableCookieManagement:            ioutils.WriteBoolAnswer,
   142  	BowerRegistryUrl:                  ioutils.WriteStringAnswer,
   143  	ComposerRegistryUrl:               ioutils.WriteStringAnswer,
   144  	PyPIRegistryUrl:                   ioutils.WriteStringAnswer,
   145  	VcsType:                           ioutils.WriteStringAnswer,
   146  	VcsGitProvider:                    ioutils.WriteStringAnswer,
   147  	VcsGitDownloadUrl:                 ioutils.WriteStringAnswer,
   148  	BypassHeadRequests:                ioutils.WriteBoolAnswer,
   149  	ClientTlsCertificate:              ioutils.WriteStringAnswer,
   150  	FeedContextPath:                   ioutils.WriteStringAnswer,
   151  	DownloadContextPath:               ioutils.WriteStringAnswer,
   152  	V3FeedUrl:                         ioutils.WriteStringAnswer,
   153  	ContentSynchronisation:            writeContentSynchronisation,
   154  	ListRemoteFolderItems:             ioutils.WriteBoolAnswer,
   155  	RejectInvalidJars:                 ioutils.WriteBoolAnswer,
   156  	PodsSpecsRepoUrl:                  ioutils.WriteStringAnswer,
   157  	EnableTokenAuthentication:         ioutils.WriteBoolAnswer,
   158  	Repositories:                      ioutils.WriteStringArrayAnswer,
   159  	ArtifactoryRequestsCanRetrieveRemoteArtifacts: ioutils.WriteBoolAnswer,
   160  	KeyPair:                              ioutils.WriteStringAnswer,
   161  	PomRepositoryReferencesCleanupPolicy: ioutils.WriteStringAnswer,
   162  	DefaultDeploymentRepo:                ioutils.WriteStringAnswer,
   163  	ForceMavenAuthentication:             ioutils.WriteBoolAnswer,
   164  	ForceNugetAuthentication:             ioutils.WriteBoolAnswer,
   165  	ExternalDependenciesRemoteRepo:       ioutils.WriteStringAnswer,
   166  }
   167  
   168  func writeContentSynchronisation(resultMap *map[string]interface{}, key, value string) error {
   169  	answerArray := strings.Split(value, ",")
   170  	if len(answerArray) != 4 {
   171  		return errors.New("invalid value for Content Synchronisation")
   172  	}
   173  	var cs services.ContentSynchronisation
   174  
   175  	enabled, err := strconv.ParseBool(answerArray[0])
   176  	if errorutils.CheckError(err) != nil {
   177  		return err
   178  	}
   179  	cs.Enabled = &enabled
   180  
   181  	enabled, err = strconv.ParseBool(answerArray[1])
   182  	if errorutils.CheckError(err) != nil {
   183  		return err
   184  	}
   185  	cs.Statistics = &services.ContentSynchronisationStatistics{
   186  		Enabled: &enabled,
   187  	}
   188  
   189  	enabled, err = strconv.ParseBool(answerArray[2])
   190  	if errorutils.CheckError(err) != nil {
   191  		return err
   192  	}
   193  	cs.Properties = &services.ContentSynchronisationProperties{
   194  		Enabled: &enabled,
   195  	}
   196  
   197  	enabled, err = strconv.ParseBool(answerArray[3])
   198  	if errorutils.CheckError(err) != nil {
   199  		return err
   200  	}
   201  	cs.Source = &services.ContentSynchronisationSource{
   202  		OriginAbsenceDetection: &enabled,
   203  	}
   204  
   205  	(*resultMap)[key] = cs
   206  	return nil
   207  }
   208  
   209  // repoHandler is a function that gets serviceManager, JSON configuration content and a flag indicates is the operation in an update operation
   210  // Each handler unmarshal the JSOn content into the jfrog-client's unique rclass-pkgType param struct, and run the operation service
   211  type repoHandler func(artifactory.ArtifactoryServicesManager, []byte, bool) error
   212  
   213  var localRepoHandlers = map[string]repoHandler{
   214  	Maven:     localMavenHandler,
   215  	Gradle:    localGradleHandler,
   216  	Ivy:       localIvyHandles,
   217  	Sbt:       localSbtHandler,
   218  	Helm:      localHelmHandler,
   219  	Cocoapods: localCocoapodsHandler,
   220  	Opkg:      localOpkgHandler,
   221  	Rpm:       localRpmHandler,
   222  	Nuget:     localNugetHandler,
   223  	Cran:      localCranHandler,
   224  	Gems:      localGemsHandler,
   225  	Npm:       localNpmHandler,
   226  	Bower:     localBowerHandler,
   227  	Debian:    localDebianHandler,
   228  	Composer:  localComposerHandler,
   229  	Pypi:      localPypiHandler,
   230  	Docker:    localDockerHandler,
   231  	Vagrant:   localVagrantHandler,
   232  	Gitlfs:    localGitLfsHandler,
   233  	Go:        localGoHandler,
   234  	Yum:       localYumHandler,
   235  	Conan:     localConanHandler,
   236  	Conda:     localCondaHandler,
   237  	Chef:      localChefHandler,
   238  	Puppet:    localPuppetHandler,
   239  	Alpine:    localAlpineHandler,
   240  	Generic:   localGenericHandler,
   241  	Swift:     localSwiftHandler,
   242  	Terraform: localTerraformHandler,
   243  	Cargo:     localCargoHandler,
   244  }
   245  
   246  func localMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   247  	params := services.NewMavenLocalRepositoryParams()
   248  	err := json.Unmarshal(jsonConfig, &params)
   249  	if errorutils.CheckError(err) != nil {
   250  		return err
   251  	}
   252  	if isUpdate {
   253  		err = servicesManager.UpdateLocalRepository().Maven(params)
   254  	} else {
   255  		err = servicesManager.CreateLocalRepository().Maven(params)
   256  	}
   257  	return err
   258  }
   259  
   260  func localGradleHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   261  	params := services.NewGradleLocalRepositoryParams()
   262  	err := json.Unmarshal(jsonConfig, &params)
   263  	if errorutils.CheckError(err) != nil {
   264  		return err
   265  	}
   266  	if isUpdate {
   267  		err = servicesManager.UpdateLocalRepository().Gradle(params)
   268  	} else {
   269  		err = servicesManager.CreateLocalRepository().Gradle(params)
   270  	}
   271  	return err
   272  }
   273  
   274  func localIvyHandles(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   275  	params := services.NewIvyLocalRepositoryParams()
   276  	err := json.Unmarshal(jsonConfig, &params)
   277  	if errorutils.CheckError(err) != nil {
   278  		return err
   279  	}
   280  	if isUpdate {
   281  		err = servicesManager.UpdateLocalRepository().Ivy(params)
   282  	} else {
   283  		err = servicesManager.CreateLocalRepository().Ivy(params)
   284  	}
   285  	return err
   286  }
   287  
   288  func localSbtHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   289  	params := services.NewSbtLocalRepositoryParams()
   290  	err := json.Unmarshal(jsonConfig, &params)
   291  	if errorutils.CheckError(err) != nil {
   292  		return err
   293  	}
   294  	if isUpdate {
   295  		err = servicesManager.UpdateLocalRepository().Sbt(params)
   296  	} else {
   297  		err = servicesManager.CreateLocalRepository().Sbt(params)
   298  	}
   299  	return err
   300  }
   301  
   302  func localHelmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   303  	params := services.NewHelmLocalRepositoryParams()
   304  	err := json.Unmarshal(jsonConfig, &params)
   305  	if errorutils.CheckError(err) != nil {
   306  		return err
   307  	}
   308  	if isUpdate {
   309  		err = servicesManager.UpdateLocalRepository().Helm(params)
   310  	} else {
   311  		err = servicesManager.CreateLocalRepository().Helm(params)
   312  	}
   313  	return err
   314  }
   315  
   316  func localCocoapodsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   317  	params := services.NewCocoapodsLocalRepositoryParams()
   318  	err := json.Unmarshal(jsonConfig, &params)
   319  	if errorutils.CheckError(err) != nil {
   320  		return err
   321  	}
   322  	if isUpdate {
   323  		err = servicesManager.UpdateLocalRepository().Cocoapods(params)
   324  	} else {
   325  		err = servicesManager.CreateLocalRepository().Cocoapods(params)
   326  	}
   327  	return err
   328  }
   329  
   330  func localOpkgHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   331  	params := services.NewOpkgLocalRepositoryParams()
   332  	err := json.Unmarshal(jsonConfig, &params)
   333  	if errorutils.CheckError(err) != nil {
   334  		return err
   335  	}
   336  	if isUpdate {
   337  		err = servicesManager.UpdateLocalRepository().Opkg(params)
   338  	} else {
   339  		err = servicesManager.CreateLocalRepository().Opkg(params)
   340  	}
   341  	return err
   342  }
   343  
   344  func localRpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   345  	params := services.NewRpmLocalRepositoryParams()
   346  	err := json.Unmarshal(jsonConfig, &params)
   347  	if errorutils.CheckError(err) != nil {
   348  		return err
   349  	}
   350  	if isUpdate {
   351  		err = servicesManager.UpdateLocalRepository().Rpm(params)
   352  	} else {
   353  		err = servicesManager.CreateLocalRepository().Rpm(params)
   354  	}
   355  	return err
   356  }
   357  
   358  func localNugetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   359  	params := services.NewNugetLocalRepositoryParams()
   360  	err := json.Unmarshal(jsonConfig, &params)
   361  	if errorutils.CheckError(err) != nil {
   362  		return err
   363  	}
   364  	if isUpdate {
   365  		err = servicesManager.UpdateLocalRepository().Nuget(params)
   366  	} else {
   367  		err = servicesManager.CreateLocalRepository().Nuget(params)
   368  	}
   369  	return err
   370  }
   371  
   372  func localCranHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   373  	params := services.NewCranLocalRepositoryParams()
   374  	err := json.Unmarshal(jsonConfig, &params)
   375  	if errorutils.CheckError(err) != nil {
   376  		return err
   377  	}
   378  	if isUpdate {
   379  		err = servicesManager.UpdateLocalRepository().Cran(params)
   380  	} else {
   381  		err = servicesManager.CreateLocalRepository().Cran(params)
   382  	}
   383  	return err
   384  }
   385  
   386  func localGemsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   387  	params := services.NewGemsLocalRepositoryParams()
   388  	err := json.Unmarshal(jsonConfig, &params)
   389  	if errorutils.CheckError(err) != nil {
   390  		return err
   391  	}
   392  	if isUpdate {
   393  		err = servicesManager.UpdateLocalRepository().Gems(params)
   394  	} else {
   395  		err = servicesManager.CreateLocalRepository().Gems(params)
   396  	}
   397  	return err
   398  }
   399  
   400  func localNpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   401  	params := services.NewNpmLocalRepositoryParams()
   402  	err := json.Unmarshal(jsonConfig, &params)
   403  	if errorutils.CheckError(err) != nil {
   404  		return err
   405  	}
   406  	if isUpdate {
   407  		err = servicesManager.UpdateLocalRepository().Npm(params)
   408  	} else {
   409  		err = servicesManager.CreateLocalRepository().Npm(params)
   410  	}
   411  	return err
   412  }
   413  
   414  func localBowerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   415  	params := services.NewBowerLocalRepositoryParams()
   416  	err := json.Unmarshal(jsonConfig, &params)
   417  	if errorutils.CheckError(err) != nil {
   418  		return err
   419  	}
   420  	if isUpdate {
   421  		err = servicesManager.UpdateLocalRepository().Bower(params)
   422  	} else {
   423  		err = servicesManager.CreateLocalRepository().Bower(params)
   424  	}
   425  	return err
   426  }
   427  
   428  func localDebianHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   429  	params := services.NewDebianLocalRepositoryParams()
   430  	err := json.Unmarshal(jsonConfig, &params)
   431  	if errorutils.CheckError(err) != nil {
   432  		return err
   433  	}
   434  	if isUpdate {
   435  		err = servicesManager.UpdateLocalRepository().Debian(params)
   436  	} else {
   437  		err = servicesManager.CreateLocalRepository().Debian(params)
   438  	}
   439  	return err
   440  }
   441  
   442  func localComposerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   443  	params := services.NewComposerLocalRepositoryParams()
   444  	err := json.Unmarshal(jsonConfig, &params)
   445  	if errorutils.CheckError(err) != nil {
   446  		return err
   447  	}
   448  	if isUpdate {
   449  		err = servicesManager.UpdateLocalRepository().Composer(params)
   450  	} else {
   451  		err = servicesManager.CreateLocalRepository().Composer(params)
   452  	}
   453  	return err
   454  }
   455  
   456  func localPypiHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   457  	params := services.NewPypiLocalRepositoryParams()
   458  	err := json.Unmarshal(jsonConfig, &params)
   459  	if errorutils.CheckError(err) != nil {
   460  		return err
   461  	}
   462  	if isUpdate {
   463  		err = servicesManager.UpdateLocalRepository().Pypi(params)
   464  	} else {
   465  		err = servicesManager.CreateLocalRepository().Pypi(params)
   466  	}
   467  	return err
   468  }
   469  
   470  func localDockerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   471  	params := services.NewDockerLocalRepositoryParams()
   472  	err := json.Unmarshal(jsonConfig, &params)
   473  	if errorutils.CheckError(err) != nil {
   474  		return err
   475  	}
   476  	if isUpdate {
   477  		err = servicesManager.UpdateLocalRepository().Docker(params)
   478  	} else {
   479  		err = servicesManager.CreateLocalRepository().Docker(params)
   480  	}
   481  	return err
   482  }
   483  
   484  func localVagrantHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   485  	params := services.NewVagrantLocalRepositoryParams()
   486  	err := json.Unmarshal(jsonConfig, &params)
   487  	if errorutils.CheckError(err) != nil {
   488  		return err
   489  	}
   490  	if isUpdate {
   491  		err = servicesManager.UpdateLocalRepository().Vagrant(params)
   492  	} else {
   493  		err = servicesManager.CreateLocalRepository().Vagrant(params)
   494  	}
   495  	return err
   496  }
   497  
   498  func localGitLfsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   499  	params := services.NewGitlfsLocalRepositoryParams()
   500  	err := json.Unmarshal(jsonConfig, &params)
   501  	if errorutils.CheckError(err) != nil {
   502  		return err
   503  	}
   504  	if isUpdate {
   505  		err = servicesManager.UpdateLocalRepository().Gitlfs(params)
   506  	} else {
   507  		err = servicesManager.CreateLocalRepository().Gitlfs(params)
   508  	}
   509  	return err
   510  }
   511  
   512  func localGoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   513  	params := services.NewGoLocalRepositoryParams()
   514  	err := json.Unmarshal(jsonConfig, &params)
   515  	if errorutils.CheckError(err) != nil {
   516  		return err
   517  	}
   518  	if isUpdate {
   519  		err = servicesManager.UpdateLocalRepository().Go(params)
   520  	} else {
   521  		err = servicesManager.CreateLocalRepository().Go(params)
   522  	}
   523  	return err
   524  }
   525  
   526  func localYumHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   527  	params := services.NewYumLocalRepositoryParams()
   528  	err := json.Unmarshal(jsonConfig, &params)
   529  	if errorutils.CheckError(err) != nil {
   530  		return err
   531  	}
   532  	if isUpdate {
   533  		err = servicesManager.UpdateLocalRepository().Yum(params)
   534  	} else {
   535  		err = servicesManager.CreateLocalRepository().Yum(params)
   536  	}
   537  	return err
   538  }
   539  
   540  func localConanHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   541  	params := services.NewConanLocalRepositoryParams()
   542  	err := json.Unmarshal(jsonConfig, &params)
   543  	if errorutils.CheckError(err) != nil {
   544  		return err
   545  	}
   546  	if isUpdate {
   547  		err = servicesManager.UpdateLocalRepository().Conan(params)
   548  	} else {
   549  		err = servicesManager.CreateLocalRepository().Conan(params)
   550  	}
   551  	return err
   552  }
   553  
   554  func localChefHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   555  	params := services.NewChefLocalRepositoryParams()
   556  	err := json.Unmarshal(jsonConfig, &params)
   557  	if errorutils.CheckError(err) != nil {
   558  		return err
   559  	}
   560  	if isUpdate {
   561  		err = servicesManager.UpdateLocalRepository().Chef(params)
   562  	} else {
   563  		err = servicesManager.CreateLocalRepository().Chef(params)
   564  	}
   565  	return err
   566  }
   567  
   568  func localPuppetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   569  	params := services.NewPuppetLocalRepositoryParams()
   570  	err := json.Unmarshal(jsonConfig, &params)
   571  	if errorutils.CheckError(err) != nil {
   572  		return err
   573  	}
   574  	if isUpdate {
   575  		err = servicesManager.UpdateLocalRepository().Puppet(params)
   576  	} else {
   577  		err = servicesManager.CreateLocalRepository().Puppet(params)
   578  	}
   579  	return err
   580  }
   581  
   582  func localAlpineHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   583  	params := services.NewAlpineLocalRepositoryParams()
   584  	err := json.Unmarshal(jsonConfig, &params)
   585  	if errorutils.CheckError(err) != nil {
   586  		return err
   587  	}
   588  	if isUpdate {
   589  		err = servicesManager.UpdateLocalRepository().Alpine(params)
   590  	} else {
   591  		err = servicesManager.CreateLocalRepository().Alpine(params)
   592  	}
   593  	return err
   594  }
   595  
   596  func localCondaHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   597  	params := services.NewCondaLocalRepositoryParams()
   598  	err := json.Unmarshal(jsonConfig, &params)
   599  	if errorutils.CheckError(err) != nil {
   600  		return err
   601  	}
   602  	if isUpdate {
   603  		err = servicesManager.UpdateLocalRepository().Conda(params)
   604  	} else {
   605  		err = servicesManager.CreateLocalRepository().Conda(params)
   606  	}
   607  	return err
   608  }
   609  
   610  func localSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   611  	params := services.NewSwiftLocalRepositoryParams()
   612  	err := json.Unmarshal(jsonConfig, &params)
   613  	if errorutils.CheckError(err) != nil {
   614  		return err
   615  	}
   616  
   617  	if isUpdate {
   618  		err = servicesManager.UpdateLocalRepository().Swift(params)
   619  	} else {
   620  		err = servicesManager.CreateLocalRepository().Swift(params)
   621  	}
   622  	return err
   623  }
   624  
   625  func localTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   626  	params := services.NewTerraformLocalRepositoryParams()
   627  	err := json.Unmarshal(jsonConfig, &params)
   628  	if errorutils.CheckError(err) != nil {
   629  		return err
   630  	}
   631  
   632  	if isUpdate {
   633  		err = servicesManager.UpdateLocalRepository().Terraform(params)
   634  	} else {
   635  		err = servicesManager.CreateLocalRepository().Terraform(params)
   636  	}
   637  	return err
   638  }
   639  
   640  func localCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   641  	params := services.NewCargoLocalRepositoryParams()
   642  	err := json.Unmarshal(jsonConfig, &params)
   643  	if errorutils.CheckError(err) != nil {
   644  		return err
   645  	}
   646  
   647  	if isUpdate {
   648  		err = servicesManager.UpdateLocalRepository().Cargo(params)
   649  	} else {
   650  		err = servicesManager.CreateLocalRepository().Cargo(params)
   651  	}
   652  	return err
   653  }
   654  
   655  func localGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   656  	params := services.NewGenericLocalRepositoryParams()
   657  	err := json.Unmarshal(jsonConfig, &params)
   658  	if errorutils.CheckError(err) != nil {
   659  		return err
   660  	}
   661  
   662  	if isUpdate {
   663  		err = servicesManager.UpdateLocalRepository().Generic(params)
   664  	} else {
   665  		err = servicesManager.CreateLocalRepository().Generic(params)
   666  	}
   667  	return err
   668  }
   669  
   670  var remoteRepoHandlers = map[string]repoHandler{
   671  	Maven:     remoteMavenHandler,
   672  	Gradle:    remoteGradleHandler,
   673  	Ivy:       remoteIvyHandler,
   674  	Sbt:       remoteSbtHandler,
   675  	Helm:      remoteHelmHandler,
   676  	Cocoapods: remoteCocoapodsHandler,
   677  	Opkg:      remoteOpkgHandler,
   678  	Rpm:       remoteRpmHandler,
   679  	Nuget:     remoteNugetHandler,
   680  	Cran:      remoteCranHandler,
   681  	Gems:      remoteGemsHandler,
   682  	Npm:       remoteNpmHandler,
   683  	Bower:     remoteBowerHandler,
   684  	Debian:    remoteDebianHandler,
   685  	Composer:  remoteComposerHandler,
   686  	Pypi:      remotePypiHandler,
   687  	Docker:    remoteDockerHandler,
   688  	Gitlfs:    remoteGitLfsHandler,
   689  	Go:        remoteGoHandler,
   690  	Yum:       remoteYumHandler,
   691  	Conan:     remoteConanHandler,
   692  	Conda:     remoteCondaHandler,
   693  	Chef:      remoteChefHandler,
   694  	Puppet:    remotePuppetHandler,
   695  	P2:        remoteP2Handler,
   696  	Vcs:       remoteVcsHandler,
   697  	Alpine:    remoteAlpineHandler,
   698  	Generic:   remoteGenericHandler,
   699  	Swift:     remoteSwiftHandler,
   700  	Terraform: remoteTerraformHandler,
   701  	Cargo:     remoteCargoHandler,
   702  }
   703  
   704  func remoteMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   705  	params := services.NewMavenRemoteRepositoryParams()
   706  	err := json.Unmarshal(jsonConfig, &params)
   707  	if errorutils.CheckError(err) != nil {
   708  		return err
   709  	}
   710  	if isUpdate {
   711  		err = servicesManager.UpdateRemoteRepository().Maven(params)
   712  	} else {
   713  		err = servicesManager.CreateRemoteRepository().Maven(params)
   714  	}
   715  	return err
   716  }
   717  
   718  func remoteGradleHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   719  	params := services.NewGradleRemoteRepositoryParams()
   720  	err := json.Unmarshal(jsonConfig, &params)
   721  	if errorutils.CheckError(err) != nil {
   722  		return err
   723  	}
   724  	if isUpdate {
   725  		err = servicesManager.UpdateRemoteRepository().Gradle(params)
   726  	} else {
   727  		err = servicesManager.CreateRemoteRepository().Gradle(params)
   728  	}
   729  	return err
   730  }
   731  
   732  func remoteIvyHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   733  	params := services.NewIvyRemoteRepositoryParams()
   734  	err := json.Unmarshal(jsonConfig, &params)
   735  	if errorutils.CheckError(err) != nil {
   736  		return err
   737  	}
   738  	if isUpdate {
   739  		err = servicesManager.UpdateRemoteRepository().Ivy(params)
   740  	} else {
   741  		err = servicesManager.CreateRemoteRepository().Ivy(params)
   742  	}
   743  	return err
   744  }
   745  
   746  func remoteSbtHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   747  	params := services.NewSbtRemoteRepositoryParams()
   748  	err := json.Unmarshal(jsonConfig, &params)
   749  	if errorutils.CheckError(err) != nil {
   750  		return err
   751  	}
   752  	if isUpdate {
   753  		err = servicesManager.UpdateRemoteRepository().Sbt(params)
   754  	} else {
   755  		err = servicesManager.CreateRemoteRepository().Sbt(params)
   756  	}
   757  	return err
   758  }
   759  
   760  func remoteHelmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   761  	params := services.NewHelmRemoteRepositoryParams()
   762  	err := json.Unmarshal(jsonConfig, &params)
   763  	if errorutils.CheckError(err) != nil {
   764  		return err
   765  	}
   766  	if isUpdate {
   767  		err = servicesManager.UpdateRemoteRepository().Helm(params)
   768  	} else {
   769  		err = servicesManager.CreateRemoteRepository().Helm(params)
   770  	}
   771  	return err
   772  }
   773  
   774  func remoteCocoapodsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   775  	params := services.NewCocoapodsRemoteRepositoryParams()
   776  	err := json.Unmarshal(jsonConfig, &params)
   777  	if errorutils.CheckError(err) != nil {
   778  		return err
   779  	}
   780  	if isUpdate {
   781  		err = servicesManager.UpdateRemoteRepository().Cocoapods(params)
   782  	} else {
   783  		err = servicesManager.CreateRemoteRepository().Cocoapods(params)
   784  	}
   785  	return err
   786  }
   787  
   788  func remoteOpkgHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   789  	params := services.NewOpkgRemoteRepositoryParams()
   790  	err := json.Unmarshal(jsonConfig, &params)
   791  	if errorutils.CheckError(err) != nil {
   792  		return err
   793  	}
   794  	if isUpdate {
   795  		err = servicesManager.UpdateRemoteRepository().Opkg(params)
   796  	} else {
   797  		err = servicesManager.CreateRemoteRepository().Opkg(params)
   798  	}
   799  	return err
   800  }
   801  
   802  func remoteRpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   803  	params := services.NewRpmRemoteRepositoryParams()
   804  	err := json.Unmarshal(jsonConfig, &params)
   805  	if errorutils.CheckError(err) != nil {
   806  		return err
   807  	}
   808  	if isUpdate {
   809  		err = servicesManager.UpdateRemoteRepository().Rpm(params)
   810  	} else {
   811  		err = servicesManager.CreateRemoteRepository().Rpm(params)
   812  	}
   813  	return err
   814  }
   815  
   816  func remoteNugetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   817  	params := services.NewNugetRemoteRepositoryParams()
   818  	err := json.Unmarshal(jsonConfig, &params)
   819  	if errorutils.CheckError(err) != nil {
   820  		return err
   821  	}
   822  	if isUpdate {
   823  		err = servicesManager.UpdateRemoteRepository().Nuget(params)
   824  	} else {
   825  		err = servicesManager.CreateRemoteRepository().Nuget(params)
   826  	}
   827  	return err
   828  }
   829  
   830  func remoteCranHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   831  	params := services.NewCranRemoteRepositoryParams()
   832  	err := json.Unmarshal(jsonConfig, &params)
   833  	if errorutils.CheckError(err) != nil {
   834  		return err
   835  	}
   836  	if isUpdate {
   837  		err = servicesManager.UpdateRemoteRepository().Cran(params)
   838  	} else {
   839  		err = servicesManager.CreateRemoteRepository().Cran(params)
   840  	}
   841  	return err
   842  }
   843  
   844  func remoteGemsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   845  	params := services.NewGemsRemoteRepositoryParams()
   846  	err := json.Unmarshal(jsonConfig, &params)
   847  	if errorutils.CheckError(err) != nil {
   848  		return err
   849  	}
   850  	if isUpdate {
   851  		err = servicesManager.UpdateRemoteRepository().Gems(params)
   852  	} else {
   853  		err = servicesManager.CreateRemoteRepository().Gems(params)
   854  	}
   855  	return err
   856  }
   857  
   858  func remoteNpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   859  	params := services.NewNpmRemoteRepositoryParams()
   860  	err := json.Unmarshal(jsonConfig, &params)
   861  	if errorutils.CheckError(err) != nil {
   862  		return err
   863  	}
   864  	if isUpdate {
   865  		err = servicesManager.UpdateRemoteRepository().Npm(params)
   866  	} else {
   867  		err = servicesManager.CreateRemoteRepository().Npm(params)
   868  	}
   869  	return err
   870  }
   871  
   872  func remoteBowerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   873  	params := services.NewBowerRemoteRepositoryParams()
   874  	err := json.Unmarshal(jsonConfig, &params)
   875  	if errorutils.CheckError(err) != nil {
   876  		return err
   877  	}
   878  	if isUpdate {
   879  		err = servicesManager.UpdateRemoteRepository().Bower(params)
   880  	} else {
   881  		err = servicesManager.CreateRemoteRepository().Bower(params)
   882  	}
   883  	return err
   884  }
   885  
   886  func remoteDebianHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   887  	params := services.NewDebianRemoteRepositoryParams()
   888  	err := json.Unmarshal(jsonConfig, &params)
   889  	if errorutils.CheckError(err) != nil {
   890  		return err
   891  	}
   892  	if isUpdate {
   893  		err = servicesManager.UpdateRemoteRepository().Debian(params)
   894  	} else {
   895  		err = servicesManager.CreateRemoteRepository().Debian(params)
   896  	}
   897  	return err
   898  }
   899  
   900  func remoteComposerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   901  	params := services.NewComposerRemoteRepositoryParams()
   902  	err := json.Unmarshal(jsonConfig, &params)
   903  	if errorutils.CheckError(err) != nil {
   904  		return err
   905  	}
   906  	if isUpdate {
   907  		err = servicesManager.UpdateRemoteRepository().Composer(params)
   908  	} else {
   909  		err = servicesManager.CreateRemoteRepository().Composer(params)
   910  	}
   911  	return err
   912  }
   913  
   914  func remotePypiHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   915  	params := services.NewPypiRemoteRepositoryParams()
   916  	err := json.Unmarshal(jsonConfig, &params)
   917  	if errorutils.CheckError(err) != nil {
   918  		return err
   919  	}
   920  	if isUpdate {
   921  		err = servicesManager.UpdateRemoteRepository().Pypi(params)
   922  	} else {
   923  		err = servicesManager.CreateRemoteRepository().Pypi(params)
   924  	}
   925  	return err
   926  }
   927  
   928  func remoteDockerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   929  	params := services.NewDockerRemoteRepositoryParams()
   930  	err := json.Unmarshal(jsonConfig, &params)
   931  	if errorutils.CheckError(err) != nil {
   932  		return err
   933  	}
   934  	if isUpdate {
   935  		err = servicesManager.UpdateRemoteRepository().Docker(params)
   936  	} else {
   937  		err = servicesManager.CreateRemoteRepository().Docker(params)
   938  	}
   939  	return err
   940  }
   941  
   942  func remoteGitLfsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   943  	params := services.NewGitlfsRemoteRepositoryParams()
   944  	err := json.Unmarshal(jsonConfig, &params)
   945  	if errorutils.CheckError(err) != nil {
   946  		return err
   947  	}
   948  	if isUpdate {
   949  		err = servicesManager.UpdateRemoteRepository().Gitlfs(params)
   950  	} else {
   951  		err = servicesManager.CreateRemoteRepository().Gitlfs(params)
   952  	}
   953  	return err
   954  }
   955  
   956  func remoteGoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   957  	params := services.NewGoRemoteRepositoryParams()
   958  	err := json.Unmarshal(jsonConfig, &params)
   959  	if errorutils.CheckError(err) != nil {
   960  		return err
   961  	}
   962  	if isUpdate {
   963  		err = servicesManager.UpdateRemoteRepository().Go(params)
   964  	} else {
   965  		err = servicesManager.CreateRemoteRepository().Go(params)
   966  	}
   967  	return err
   968  }
   969  
   970  func remoteConanHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   971  	params := services.NewConanRemoteRepositoryParams()
   972  	err := json.Unmarshal(jsonConfig, &params)
   973  	if errorutils.CheckError(err) != nil {
   974  		return err
   975  	}
   976  	if isUpdate {
   977  		err = servicesManager.UpdateRemoteRepository().Conan(params)
   978  	} else {
   979  		err = servicesManager.CreateRemoteRepository().Conan(params)
   980  	}
   981  	return err
   982  }
   983  
   984  func remoteChefHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   985  	params := services.NewChefRemoteRepositoryParams()
   986  	err := json.Unmarshal(jsonConfig, &params)
   987  	if errorutils.CheckError(err) != nil {
   988  		return err
   989  	}
   990  	if isUpdate {
   991  		err = servicesManager.UpdateRemoteRepository().Chef(params)
   992  	} else {
   993  		err = servicesManager.CreateRemoteRepository().Chef(params)
   994  	}
   995  	return err
   996  }
   997  
   998  func remotePuppetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
   999  	params := services.NewPuppetRemoteRepositoryParams()
  1000  	err := json.Unmarshal(jsonConfig, &params)
  1001  	if errorutils.CheckError(err) != nil {
  1002  		return err
  1003  	}
  1004  	if isUpdate {
  1005  		err = servicesManager.UpdateRemoteRepository().Puppet(params)
  1006  	} else {
  1007  		err = servicesManager.CreateRemoteRepository().Puppet(params)
  1008  	}
  1009  	return err
  1010  }
  1011  
  1012  func remoteVcsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1013  	params := services.NewVcsRemoteRepositoryParams()
  1014  	err := json.Unmarshal(jsonConfig, &params)
  1015  	if errorutils.CheckError(err) != nil {
  1016  		return err
  1017  	}
  1018  	if isUpdate {
  1019  		err = servicesManager.UpdateRemoteRepository().Vcs(params)
  1020  	} else {
  1021  		err = servicesManager.CreateRemoteRepository().Vcs(params)
  1022  	}
  1023  	return err
  1024  }
  1025  
  1026  func remoteAlpineHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1027  	params := services.NewAlpineRemoteRepositoryParams()
  1028  	err := json.Unmarshal(jsonConfig, &params)
  1029  	if errorutils.CheckError(err) != nil {
  1030  		return err
  1031  	}
  1032  	if isUpdate {
  1033  		err = servicesManager.UpdateRemoteRepository().Alpine(params)
  1034  	} else {
  1035  		err = servicesManager.CreateRemoteRepository().Alpine(params)
  1036  	}
  1037  	return err
  1038  }
  1039  
  1040  func remoteP2Handler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1041  	params := services.NewP2RemoteRepositoryParams()
  1042  	err := json.Unmarshal(jsonConfig, &params)
  1043  	if errorutils.CheckError(err) != nil {
  1044  		return err
  1045  	}
  1046  	if isUpdate {
  1047  		err = servicesManager.UpdateRemoteRepository().P2(params)
  1048  	} else {
  1049  		err = servicesManager.CreateRemoteRepository().P2(params)
  1050  	}
  1051  	return err
  1052  }
  1053  
  1054  func remoteCondaHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1055  	params := services.NewCondaRemoteRepositoryParams()
  1056  	err := json.Unmarshal(jsonConfig, &params)
  1057  	if errorutils.CheckError(err) != nil {
  1058  		return err
  1059  	}
  1060  	if isUpdate {
  1061  		err = servicesManager.UpdateRemoteRepository().Conda(params)
  1062  	} else {
  1063  		err = servicesManager.CreateRemoteRepository().Conda(params)
  1064  	}
  1065  	return err
  1066  }
  1067  
  1068  func remoteYumHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1069  	params := services.NewYumRemoteRepositoryParams()
  1070  	err := json.Unmarshal(jsonConfig, &params)
  1071  	if errorutils.CheckError(err) != nil {
  1072  		return err
  1073  	}
  1074  	if isUpdate {
  1075  		err = servicesManager.UpdateRemoteRepository().Yum(params)
  1076  	} else {
  1077  		err = servicesManager.CreateRemoteRepository().Yum(params)
  1078  	}
  1079  	return err
  1080  }
  1081  
  1082  func remoteSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1083  	params := services.NewSwiftRemoteRepositoryParams()
  1084  	err := json.Unmarshal(jsonConfig, &params)
  1085  	if errorutils.CheckError(err) != nil {
  1086  		return err
  1087  	}
  1088  	if isUpdate {
  1089  		err = servicesManager.UpdateRemoteRepository().Swift(params)
  1090  	} else {
  1091  		err = servicesManager.CreateRemoteRepository().Swift(params)
  1092  	}
  1093  	return err
  1094  }
  1095  
  1096  func remoteCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1097  	params := services.NewCargoRemoteRepositoryParams()
  1098  	err := json.Unmarshal(jsonConfig, &params)
  1099  	if errorutils.CheckError(err) != nil {
  1100  		return err
  1101  	}
  1102  	if isUpdate {
  1103  		err = servicesManager.UpdateRemoteRepository().Cargo(params)
  1104  	} else {
  1105  		err = servicesManager.CreateRemoteRepository().Cargo(params)
  1106  	}
  1107  	return err
  1108  }
  1109  
  1110  func remoteTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1111  	params := services.NewTerraformRemoteRepositoryParams()
  1112  	err := json.Unmarshal(jsonConfig, &params)
  1113  	if errorutils.CheckError(err) != nil {
  1114  		return err
  1115  	}
  1116  	if isUpdate {
  1117  		err = servicesManager.UpdateRemoteRepository().Terraform(params)
  1118  	} else {
  1119  		err = servicesManager.CreateRemoteRepository().Terraform(params)
  1120  	}
  1121  	return err
  1122  }
  1123  
  1124  func remoteGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1125  	params := services.NewGenericRemoteRepositoryParams()
  1126  	err := json.Unmarshal(jsonConfig, &params)
  1127  	if errorutils.CheckError(err) != nil {
  1128  		return err
  1129  	}
  1130  	if isUpdate {
  1131  		err = servicesManager.UpdateRemoteRepository().Generic(params)
  1132  	} else {
  1133  		err = servicesManager.CreateRemoteRepository().Generic(params)
  1134  	}
  1135  	return err
  1136  }
  1137  
  1138  var federatedRepoHandlers = map[string]repoHandler{
  1139  	Maven:     federatedMavenHandler,
  1140  	Gradle:    federatedGradleHandler,
  1141  	Ivy:       federatedIvyHandles,
  1142  	Sbt:       federatedSbtHandler,
  1143  	Helm:      federatedHelmHandler,
  1144  	Cocoapods: federatedCocoapodsHandler,
  1145  	Opkg:      federatedOpkgHandler,
  1146  	Rpm:       federatedRpmHandler,
  1147  	Nuget:     federatedNugetHandler,
  1148  	Cran:      federatedCranHandler,
  1149  	Gems:      federatedGemsHandler,
  1150  	Npm:       federatedNpmHandler,
  1151  	Bower:     federatedBowerHandler,
  1152  	Debian:    federatedDebianHandler,
  1153  	Composer:  federatedComposerHandler,
  1154  	Pypi:      federatedPypiHandler,
  1155  	Docker:    federatedDockerHandler,
  1156  	Vagrant:   federatedVagrantHandler,
  1157  	Gitlfs:    federatedGitLfsHandler,
  1158  	Go:        federatedGoHandler,
  1159  	Conan:     federatedConanHandler,
  1160  	Conda:     federatedCondaHandler,
  1161  	Chef:      federatedChefHandler,
  1162  	Puppet:    federatedPuppetHandler,
  1163  	Alpine:    federatedAlpineHandler,
  1164  	Generic:   federatedGenericHandler,
  1165  	Yum:       federatedYumHandler,
  1166  	Swift:     federatedSwiftHandler,
  1167  	Terraform: federatedTerraformHandler,
  1168  	Cargo:     federatedCargoHandler,
  1169  }
  1170  
  1171  func federatedMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1172  	params := services.NewMavenFederatedRepositoryParams()
  1173  	err := json.Unmarshal(jsonConfig, &params)
  1174  	if errorutils.CheckError(err) != nil {
  1175  		return err
  1176  	}
  1177  	if isUpdate {
  1178  		return servicesManager.UpdateFederatedRepository().Maven(params)
  1179  	}
  1180  	return servicesManager.CreateFederatedRepository().Maven(params)
  1181  }
  1182  
  1183  func federatedGradleHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1184  	params := services.NewGradleFederatedRepositoryParams()
  1185  	err := json.Unmarshal(jsonConfig, &params)
  1186  	if errorutils.CheckError(err) != nil {
  1187  		return err
  1188  	}
  1189  	if isUpdate {
  1190  		return servicesManager.UpdateFederatedRepository().Gradle(params)
  1191  	}
  1192  	return servicesManager.CreateFederatedRepository().Gradle(params)
  1193  }
  1194  
  1195  func federatedIvyHandles(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1196  	params := services.NewIvyFederatedRepositoryParams()
  1197  	err := json.Unmarshal(jsonConfig, &params)
  1198  	if errorutils.CheckError(err) != nil {
  1199  		return err
  1200  	}
  1201  	if isUpdate {
  1202  		return servicesManager.UpdateFederatedRepository().Ivy(params)
  1203  	}
  1204  	return servicesManager.CreateFederatedRepository().Ivy(params)
  1205  }
  1206  
  1207  func federatedSbtHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1208  	params := services.NewSbtFederatedRepositoryParams()
  1209  	err := json.Unmarshal(jsonConfig, &params)
  1210  	if errorutils.CheckError(err) != nil {
  1211  		return err
  1212  	}
  1213  	if isUpdate {
  1214  		return servicesManager.UpdateFederatedRepository().Sbt(params)
  1215  	}
  1216  	return servicesManager.CreateFederatedRepository().Sbt(params)
  1217  }
  1218  
  1219  func federatedHelmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1220  	params := services.NewHelmFederatedRepositoryParams()
  1221  	err := json.Unmarshal(jsonConfig, &params)
  1222  	if errorutils.CheckError(err) != nil {
  1223  		return err
  1224  	}
  1225  	if isUpdate {
  1226  		return servicesManager.UpdateFederatedRepository().Helm(params)
  1227  	}
  1228  	return servicesManager.CreateFederatedRepository().Helm(params)
  1229  
  1230  }
  1231  
  1232  func federatedCocoapodsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1233  	params := services.NewCocoapodsFederatedRepositoryParams()
  1234  	err := json.Unmarshal(jsonConfig, &params)
  1235  	if errorutils.CheckError(err) != nil {
  1236  		return err
  1237  	}
  1238  	if isUpdate {
  1239  		return servicesManager.UpdateFederatedRepository().Cocoapods(params)
  1240  	}
  1241  	return servicesManager.CreateFederatedRepository().Cocoapods(params)
  1242  }
  1243  
  1244  func federatedOpkgHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1245  	params := services.NewOpkgFederatedRepositoryParams()
  1246  	err := json.Unmarshal(jsonConfig, &params)
  1247  	if errorutils.CheckError(err) != nil {
  1248  		return err
  1249  	}
  1250  	if isUpdate {
  1251  		return servicesManager.UpdateFederatedRepository().Opkg(params)
  1252  	}
  1253  	return servicesManager.CreateFederatedRepository().Opkg(params)
  1254  }
  1255  
  1256  func federatedRpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1257  	params := services.NewRpmFederatedRepositoryParams()
  1258  	err := json.Unmarshal(jsonConfig, &params)
  1259  	if errorutils.CheckError(err) != nil {
  1260  		return err
  1261  	}
  1262  	if isUpdate {
  1263  		return servicesManager.UpdateFederatedRepository().Rpm(params)
  1264  	}
  1265  	return servicesManager.CreateFederatedRepository().Rpm(params)
  1266  }
  1267  
  1268  func federatedNugetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1269  	params := services.NewNugetFederatedRepositoryParams()
  1270  	err := json.Unmarshal(jsonConfig, &params)
  1271  	if errorutils.CheckError(err) != nil {
  1272  		return err
  1273  	}
  1274  	if isUpdate {
  1275  		return servicesManager.UpdateFederatedRepository().Nuget(params)
  1276  	}
  1277  	return servicesManager.CreateFederatedRepository().Nuget(params)
  1278  }
  1279  
  1280  func federatedCranHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1281  	params := services.NewCranFederatedRepositoryParams()
  1282  	err := json.Unmarshal(jsonConfig, &params)
  1283  	if errorutils.CheckError(err) != nil {
  1284  		return err
  1285  	}
  1286  	if isUpdate {
  1287  		return servicesManager.UpdateFederatedRepository().Cran(params)
  1288  	}
  1289  	return servicesManager.CreateFederatedRepository().Cran(params)
  1290  }
  1291  
  1292  func federatedGemsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1293  	params := services.NewGemsFederatedRepositoryParams()
  1294  	err := json.Unmarshal(jsonConfig, &params)
  1295  	if errorutils.CheckError(err) != nil {
  1296  		return err
  1297  	}
  1298  	if isUpdate {
  1299  		return servicesManager.UpdateFederatedRepository().Gems(params)
  1300  	}
  1301  	return servicesManager.CreateFederatedRepository().Gems(params)
  1302  }
  1303  
  1304  func federatedNpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1305  	params := services.NewNpmFederatedRepositoryParams()
  1306  	err := json.Unmarshal(jsonConfig, &params)
  1307  	if errorutils.CheckError(err) != nil {
  1308  		return err
  1309  	}
  1310  	if isUpdate {
  1311  		return servicesManager.UpdateFederatedRepository().Npm(params)
  1312  	}
  1313  	return servicesManager.CreateFederatedRepository().Npm(params)
  1314  }
  1315  
  1316  func federatedBowerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1317  	params := services.NewBowerFederatedRepositoryParams()
  1318  	err := json.Unmarshal(jsonConfig, &params)
  1319  	if errorutils.CheckError(err) != nil {
  1320  		return err
  1321  	}
  1322  	if isUpdate {
  1323  		return servicesManager.UpdateFederatedRepository().Bower(params)
  1324  	}
  1325  	return servicesManager.CreateFederatedRepository().Bower(params)
  1326  }
  1327  
  1328  func federatedDebianHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1329  	params := services.NewDebianFederatedRepositoryParams()
  1330  	err := json.Unmarshal(jsonConfig, &params)
  1331  	if errorutils.CheckError(err) != nil {
  1332  		return err
  1333  	}
  1334  	if isUpdate {
  1335  		return servicesManager.UpdateFederatedRepository().Debian(params)
  1336  	}
  1337  	return servicesManager.CreateFederatedRepository().Debian(params)
  1338  }
  1339  
  1340  func federatedComposerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1341  	params := services.NewComposerFederatedRepositoryParams()
  1342  	err := json.Unmarshal(jsonConfig, &params)
  1343  	if errorutils.CheckError(err) != nil {
  1344  		return err
  1345  	}
  1346  	if isUpdate {
  1347  		return servicesManager.UpdateFederatedRepository().Composer(params)
  1348  	}
  1349  	return servicesManager.CreateFederatedRepository().Composer(params)
  1350  }
  1351  
  1352  func federatedPypiHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1353  	params := services.NewPypiFederatedRepositoryParams()
  1354  	err := json.Unmarshal(jsonConfig, &params)
  1355  	if errorutils.CheckError(err) != nil {
  1356  		return err
  1357  	}
  1358  	if isUpdate {
  1359  		return servicesManager.UpdateFederatedRepository().Pypi(params)
  1360  	}
  1361  	return servicesManager.CreateFederatedRepository().Pypi(params)
  1362  }
  1363  
  1364  func federatedDockerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1365  	params := services.NewDockerFederatedRepositoryParams()
  1366  	err := json.Unmarshal(jsonConfig, &params)
  1367  	if errorutils.CheckError(err) != nil {
  1368  		return err
  1369  	}
  1370  	if isUpdate {
  1371  		return servicesManager.UpdateFederatedRepository().Docker(params)
  1372  	}
  1373  	return servicesManager.CreateFederatedRepository().Docker(params)
  1374  }
  1375  
  1376  func federatedVagrantHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1377  	params := services.NewVagrantFederatedRepositoryParams()
  1378  	err := json.Unmarshal(jsonConfig, &params)
  1379  	if errorutils.CheckError(err) != nil {
  1380  		return err
  1381  	}
  1382  	if isUpdate {
  1383  		return servicesManager.UpdateFederatedRepository().Vagrant(params)
  1384  	}
  1385  	return servicesManager.CreateFederatedRepository().Vagrant(params)
  1386  }
  1387  
  1388  func federatedGitLfsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1389  	params := services.NewGitlfsFederatedRepositoryParams()
  1390  	err := json.Unmarshal(jsonConfig, &params)
  1391  	if errorutils.CheckError(err) != nil {
  1392  		return err
  1393  	}
  1394  	if isUpdate {
  1395  		return servicesManager.UpdateFederatedRepository().Gitlfs(params)
  1396  	}
  1397  	return servicesManager.CreateFederatedRepository().Gitlfs(params)
  1398  }
  1399  
  1400  func federatedGoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1401  	params := services.NewGoFederatedRepositoryParams()
  1402  	err := json.Unmarshal(jsonConfig, &params)
  1403  	if errorutils.CheckError(err) != nil {
  1404  		return err
  1405  	}
  1406  	if isUpdate {
  1407  		return servicesManager.UpdateFederatedRepository().Go(params)
  1408  	}
  1409  	return servicesManager.CreateFederatedRepository().Go(params)
  1410  }
  1411  
  1412  func federatedConanHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1413  	params := services.NewConanFederatedRepositoryParams()
  1414  	err := json.Unmarshal(jsonConfig, &params)
  1415  	if errorutils.CheckError(err) != nil {
  1416  		return err
  1417  	}
  1418  	if isUpdate {
  1419  		return servicesManager.UpdateFederatedRepository().Conan(params)
  1420  	}
  1421  	return servicesManager.CreateFederatedRepository().Conan(params)
  1422  }
  1423  
  1424  func federatedCondaHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1425  	params := services.NewCondaFederatedRepositoryParams()
  1426  	err := json.Unmarshal(jsonConfig, &params)
  1427  	if errorutils.CheckError(err) != nil {
  1428  		return err
  1429  	}
  1430  	if isUpdate {
  1431  		return servicesManager.UpdateFederatedRepository().Conda(params)
  1432  	}
  1433  	return servicesManager.CreateFederatedRepository().Conda(params)
  1434  }
  1435  
  1436  func federatedChefHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1437  	params := services.NewChefFederatedRepositoryParams()
  1438  	err := json.Unmarshal(jsonConfig, &params)
  1439  	if errorutils.CheckError(err) != nil {
  1440  		return err
  1441  	}
  1442  	if isUpdate {
  1443  		return servicesManager.UpdateFederatedRepository().Chef(params)
  1444  	}
  1445  	return servicesManager.CreateFederatedRepository().Chef(params)
  1446  }
  1447  
  1448  func federatedPuppetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1449  	params := services.NewPuppetFederatedRepositoryParams()
  1450  	err := json.Unmarshal(jsonConfig, &params)
  1451  	if errorutils.CheckError(err) != nil {
  1452  		return err
  1453  	}
  1454  	if isUpdate {
  1455  		return servicesManager.UpdateFederatedRepository().Puppet(params)
  1456  	}
  1457  	return servicesManager.CreateFederatedRepository().Puppet(params)
  1458  }
  1459  
  1460  func federatedAlpineHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1461  	params := services.NewAlpineFederatedRepositoryParams()
  1462  	err := json.Unmarshal(jsonConfig, &params)
  1463  	if errorutils.CheckError(err) != nil {
  1464  		return err
  1465  	}
  1466  	if isUpdate {
  1467  		return servicesManager.UpdateFederatedRepository().Alpine(params)
  1468  	}
  1469  	return servicesManager.CreateFederatedRepository().Alpine(params)
  1470  }
  1471  
  1472  func federatedGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1473  	params := services.NewGenericFederatedRepositoryParams()
  1474  	err := json.Unmarshal(jsonConfig, &params)
  1475  	if errorutils.CheckError(err) != nil {
  1476  		return err
  1477  	}
  1478  
  1479  	if isUpdate {
  1480  		return servicesManager.UpdateFederatedRepository().Generic(params)
  1481  	}
  1482  	return servicesManager.CreateFederatedRepository().Generic(params)
  1483  }
  1484  
  1485  func federatedSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1486  	params := services.NewSwiftFederatedRepositoryParams()
  1487  	err := json.Unmarshal(jsonConfig, &params)
  1488  	if errorutils.CheckError(err) != nil {
  1489  		return err
  1490  	}
  1491  	if isUpdate {
  1492  		return servicesManager.UpdateFederatedRepository().Swift(params)
  1493  	}
  1494  	return servicesManager.CreateFederatedRepository().Swift(params)
  1495  }
  1496  
  1497  func federatedTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1498  	params := services.NewTerraformFederatedRepositoryParams()
  1499  	err := json.Unmarshal(jsonConfig, &params)
  1500  	if errorutils.CheckError(err) != nil {
  1501  		return err
  1502  	}
  1503  	if isUpdate {
  1504  		return servicesManager.UpdateFederatedRepository().Terraform(params)
  1505  	}
  1506  	return servicesManager.CreateFederatedRepository().Terraform(params)
  1507  }
  1508  
  1509  func federatedCargoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1510  	params := services.NewCargoFederatedRepositoryParams()
  1511  	err := json.Unmarshal(jsonConfig, &params)
  1512  	if errorutils.CheckError(err) != nil {
  1513  		return err
  1514  	}
  1515  	if isUpdate {
  1516  		return servicesManager.UpdateFederatedRepository().Cargo(params)
  1517  	}
  1518  	return servicesManager.CreateFederatedRepository().Cargo(params)
  1519  }
  1520  
  1521  func federatedYumHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1522  	params := services.NewYumFederatedRepositoryParams()
  1523  	err := json.Unmarshal(jsonConfig, &params)
  1524  	if errorutils.CheckError(err) != nil {
  1525  		return err
  1526  	}
  1527  	if isUpdate {
  1528  		return servicesManager.UpdateFederatedRepository().Yum(params)
  1529  	}
  1530  	return servicesManager.CreateFederatedRepository().Yum(params)
  1531  }
  1532  
  1533  var virtualRepoHandlers = map[string]repoHandler{
  1534  	Maven:     virtualMavenHandler,
  1535  	Gradle:    virtualGradleHandler,
  1536  	Ivy:       virtualIvyHandler,
  1537  	Sbt:       virtualSbtHandler,
  1538  	Helm:      virtualHelmHandler,
  1539  	Rpm:       virtualRpmHandler,
  1540  	Nuget:     virtualNugetHandler,
  1541  	Cran:      virtualCranHandler,
  1542  	Gems:      virtualGemsHandler,
  1543  	Npm:       virtualNpmHandler,
  1544  	Bower:     virtualBowerHandler,
  1545  	Debian:    virtualDebianHandler,
  1546  	Pypi:      virtualPypiHandler,
  1547  	Docker:    virtualDockerHandler,
  1548  	Gitlfs:    virtualGitLfsHandler,
  1549  	Go:        virtualGoHandler,
  1550  	Yum:       virtualYumHandler,
  1551  	Conan:     virtualConanHandler,
  1552  	Chef:      virtualChefHandler,
  1553  	Puppet:    virtualPuppetHandler,
  1554  	Conda:     virtualCondaHandler,
  1555  	P2:        virtualP2Handler,
  1556  	Alpine:    virtualAlpineHandler,
  1557  	Generic:   virtualGenericHandler,
  1558  	Swift:     virtualSwiftHandler,
  1559  	Terraform: virtualTerraformHandler,
  1560  }
  1561  
  1562  func virtualMavenHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1563  	params := services.NewMavenVirtualRepositoryParams()
  1564  	err := json.Unmarshal(jsonConfig, &params)
  1565  	if errorutils.CheckError(err) != nil {
  1566  		return err
  1567  	}
  1568  	if isUpdate {
  1569  		err = servicesManager.UpdateVirtualRepository().Maven(params)
  1570  	} else {
  1571  		err = servicesManager.CreateVirtualRepository().Maven(params)
  1572  	}
  1573  	return err
  1574  }
  1575  
  1576  func virtualGradleHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1577  	params := services.NewGradleVirtualRepositoryParams()
  1578  	err := json.Unmarshal(jsonConfig, &params)
  1579  	if errorutils.CheckError(err) != nil {
  1580  		return err
  1581  	}
  1582  	if isUpdate {
  1583  		err = servicesManager.UpdateVirtualRepository().Gradle(params)
  1584  	} else {
  1585  		err = servicesManager.CreateVirtualRepository().Gradle(params)
  1586  	}
  1587  	return err
  1588  }
  1589  
  1590  func virtualIvyHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1591  	params := services.NewIvyVirtualRepositoryParams()
  1592  	err := json.Unmarshal(jsonConfig, &params)
  1593  	if errorutils.CheckError(err) != nil {
  1594  		return err
  1595  	}
  1596  	if isUpdate {
  1597  		err = servicesManager.UpdateVirtualRepository().Ivy(params)
  1598  	} else {
  1599  		err = servicesManager.CreateVirtualRepository().Ivy(params)
  1600  	}
  1601  	return err
  1602  }
  1603  
  1604  func virtualSbtHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1605  	params := services.NewSbtVirtualRepositoryParams()
  1606  	err := json.Unmarshal(jsonConfig, &params)
  1607  	if errorutils.CheckError(err) != nil {
  1608  		return err
  1609  	}
  1610  	if isUpdate {
  1611  		err = servicesManager.UpdateVirtualRepository().Sbt(params)
  1612  	} else {
  1613  		err = servicesManager.CreateVirtualRepository().Sbt(params)
  1614  	}
  1615  	return err
  1616  }
  1617  
  1618  func virtualHelmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1619  	params := services.NewHelmVirtualRepositoryParams()
  1620  	err := json.Unmarshal(jsonConfig, &params)
  1621  	if errorutils.CheckError(err) != nil {
  1622  		return err
  1623  	}
  1624  	if isUpdate {
  1625  		err = servicesManager.UpdateVirtualRepository().Helm(params)
  1626  	} else {
  1627  		err = servicesManager.CreateVirtualRepository().Helm(params)
  1628  	}
  1629  	return err
  1630  }
  1631  
  1632  func virtualRpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1633  	params := services.NewRpmVirtualRepositoryParams()
  1634  	err := json.Unmarshal(jsonConfig, &params)
  1635  	if errorutils.CheckError(err) != nil {
  1636  		return err
  1637  	}
  1638  	if isUpdate {
  1639  		err = servicesManager.UpdateVirtualRepository().Rpm(params)
  1640  	} else {
  1641  		err = servicesManager.CreateVirtualRepository().Rpm(params)
  1642  	}
  1643  	return err
  1644  }
  1645  
  1646  func virtualNugetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1647  	params := services.NewNugetVirtualRepositoryParams()
  1648  	err := json.Unmarshal(jsonConfig, &params)
  1649  	if errorutils.CheckError(err) != nil {
  1650  		return err
  1651  	}
  1652  	if isUpdate {
  1653  		err = servicesManager.UpdateVirtualRepository().Nuget(params)
  1654  	} else {
  1655  		err = servicesManager.CreateVirtualRepository().Nuget(params)
  1656  	}
  1657  	return err
  1658  }
  1659  
  1660  func virtualCranHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1661  	params := services.NewCranVirtualRepositoryParams()
  1662  	err := json.Unmarshal(jsonConfig, &params)
  1663  	if errorutils.CheckError(err) != nil {
  1664  		return err
  1665  	}
  1666  	if isUpdate {
  1667  		err = servicesManager.UpdateVirtualRepository().Cran(params)
  1668  	} else {
  1669  		err = servicesManager.CreateVirtualRepository().Cran(params)
  1670  	}
  1671  	return err
  1672  }
  1673  
  1674  func virtualGemsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1675  	params := services.NewGemsVirtualRepositoryParams()
  1676  	err := json.Unmarshal(jsonConfig, &params)
  1677  	if errorutils.CheckError(err) != nil {
  1678  		return err
  1679  	}
  1680  	if isUpdate {
  1681  		err = servicesManager.UpdateVirtualRepository().Gems(params)
  1682  	} else {
  1683  		err = servicesManager.CreateVirtualRepository().Gems(params)
  1684  	}
  1685  	return err
  1686  }
  1687  
  1688  func virtualNpmHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1689  	params := services.NewNpmVirtualRepositoryParams()
  1690  	err := json.Unmarshal(jsonConfig, &params)
  1691  	if errorutils.CheckError(err) != nil {
  1692  		return err
  1693  	}
  1694  	if isUpdate {
  1695  		err = servicesManager.UpdateVirtualRepository().Npm(params)
  1696  	} else {
  1697  		err = servicesManager.CreateVirtualRepository().Npm(params)
  1698  	}
  1699  	return err
  1700  }
  1701  
  1702  func virtualBowerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1703  	params := services.NewBowerVirtualRepositoryParams()
  1704  	err := json.Unmarshal(jsonConfig, &params)
  1705  	if errorutils.CheckError(err) != nil {
  1706  		return err
  1707  	}
  1708  	if isUpdate {
  1709  		err = servicesManager.UpdateVirtualRepository().Bower(params)
  1710  	} else {
  1711  		err = servicesManager.CreateVirtualRepository().Bower(params)
  1712  	}
  1713  	return err
  1714  }
  1715  
  1716  func virtualDebianHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1717  	params := services.NewDebianVirtualRepositoryParams()
  1718  	err := json.Unmarshal(jsonConfig, &params)
  1719  	if errorutils.CheckError(err) != nil {
  1720  		return err
  1721  	}
  1722  	if isUpdate {
  1723  		err = servicesManager.UpdateVirtualRepository().Debian(params)
  1724  	} else {
  1725  		err = servicesManager.CreateVirtualRepository().Debian(params)
  1726  	}
  1727  	return err
  1728  }
  1729  
  1730  func virtualPypiHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1731  	params := services.NewPypiVirtualRepositoryParams()
  1732  	err := json.Unmarshal(jsonConfig, &params)
  1733  	if errorutils.CheckError(err) != nil {
  1734  		return err
  1735  	}
  1736  	if isUpdate {
  1737  		err = servicesManager.UpdateVirtualRepository().Pypi(params)
  1738  	} else {
  1739  		err = servicesManager.CreateVirtualRepository().Pypi(params)
  1740  	}
  1741  	return err
  1742  }
  1743  
  1744  func virtualDockerHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1745  	params := services.NewDockerVirtualRepositoryParams()
  1746  	err := json.Unmarshal(jsonConfig, &params)
  1747  	if errorutils.CheckError(err) != nil {
  1748  		return err
  1749  	}
  1750  	if isUpdate {
  1751  		err = servicesManager.UpdateVirtualRepository().Docker(params)
  1752  	} else {
  1753  		err = servicesManager.CreateVirtualRepository().Docker(params)
  1754  	}
  1755  	return err
  1756  }
  1757  
  1758  func virtualGitLfsHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1759  	params := services.NewGitlfsVirtualRepositoryParams()
  1760  	err := json.Unmarshal(jsonConfig, &params)
  1761  	if errorutils.CheckError(err) != nil {
  1762  		return err
  1763  	}
  1764  	if isUpdate {
  1765  		err = servicesManager.UpdateVirtualRepository().Gitlfs(params)
  1766  	} else {
  1767  		err = servicesManager.CreateVirtualRepository().Gitlfs(params)
  1768  	}
  1769  	return err
  1770  }
  1771  
  1772  func virtualGoHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1773  	params := services.NewGoVirtualRepositoryParams()
  1774  	err := json.Unmarshal(jsonConfig, &params)
  1775  	if errorutils.CheckError(err) != nil {
  1776  		return err
  1777  	}
  1778  	if isUpdate {
  1779  		err = servicesManager.UpdateVirtualRepository().Go(params)
  1780  	} else {
  1781  		err = servicesManager.CreateVirtualRepository().Go(params)
  1782  	}
  1783  	return err
  1784  }
  1785  
  1786  func virtualConanHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1787  	params := services.NewConanVirtualRepositoryParams()
  1788  	err := json.Unmarshal(jsonConfig, &params)
  1789  	if errorutils.CheckError(err) != nil {
  1790  		return err
  1791  	}
  1792  	if isUpdate {
  1793  		err = servicesManager.UpdateVirtualRepository().Conan(params)
  1794  	} else {
  1795  		err = servicesManager.CreateVirtualRepository().Conan(params)
  1796  	}
  1797  	return err
  1798  }
  1799  
  1800  func virtualChefHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1801  	params := services.NewChefVirtualRepositoryParams()
  1802  	err := json.Unmarshal(jsonConfig, &params)
  1803  	if errorutils.CheckError(err) != nil {
  1804  		return err
  1805  	}
  1806  	if isUpdate {
  1807  		err = servicesManager.UpdateVirtualRepository().Chef(params)
  1808  	} else {
  1809  		err = servicesManager.CreateVirtualRepository().Chef(params)
  1810  	}
  1811  	return err
  1812  }
  1813  
  1814  func virtualPuppetHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1815  	params := services.NewPuppetVirtualRepositoryParams()
  1816  	err := json.Unmarshal(jsonConfig, &params)
  1817  	if errorutils.CheckError(err) != nil {
  1818  		return err
  1819  	}
  1820  	if isUpdate {
  1821  		err = servicesManager.UpdateVirtualRepository().Puppet(params)
  1822  	} else {
  1823  		err = servicesManager.CreateVirtualRepository().Puppet(params)
  1824  	}
  1825  	return err
  1826  }
  1827  
  1828  func virtualYumHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1829  	params := services.NewYumVirtualRepositoryParams()
  1830  	err := json.Unmarshal(jsonConfig, &params)
  1831  	if errorutils.CheckError(err) != nil {
  1832  		return err
  1833  	}
  1834  	if isUpdate {
  1835  		err = servicesManager.UpdateVirtualRepository().Yum(params)
  1836  	} else {
  1837  		err = servicesManager.CreateVirtualRepository().Yum(params)
  1838  	}
  1839  	return err
  1840  }
  1841  
  1842  func virtualP2Handler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1843  	params := services.NewP2VirtualRepositoryParams()
  1844  	err := json.Unmarshal(jsonConfig, &params)
  1845  	if errorutils.CheckError(err) != nil {
  1846  		return err
  1847  	}
  1848  	if isUpdate {
  1849  		err = servicesManager.UpdateVirtualRepository().P2(params)
  1850  	} else {
  1851  		err = servicesManager.CreateVirtualRepository().P2(params)
  1852  	}
  1853  	return err
  1854  }
  1855  
  1856  func virtualAlpineHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1857  	params := services.NewAlpineVirtualRepositoryParams()
  1858  	err := json.Unmarshal(jsonConfig, &params)
  1859  	if errorutils.CheckError(err) != nil {
  1860  		return err
  1861  	}
  1862  	if isUpdate {
  1863  		err = servicesManager.UpdateVirtualRepository().Alpine(params)
  1864  	} else {
  1865  		err = servicesManager.CreateVirtualRepository().Alpine(params)
  1866  	}
  1867  	return err
  1868  }
  1869  
  1870  func virtualCondaHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1871  	params := services.NewCondaVirtualRepositoryParams()
  1872  	err := json.Unmarshal(jsonConfig, &params)
  1873  	if errorutils.CheckError(err) != nil {
  1874  		return err
  1875  	}
  1876  	if isUpdate {
  1877  		err = servicesManager.UpdateVirtualRepository().Conda(params)
  1878  	} else {
  1879  		err = servicesManager.CreateVirtualRepository().Conda(params)
  1880  	}
  1881  	return err
  1882  }
  1883  
  1884  func virtualSwiftHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1885  	params := services.NewSwiftVirtualRepositoryParams()
  1886  	err := json.Unmarshal(jsonConfig, &params)
  1887  	if errorutils.CheckError(err) != nil {
  1888  		return err
  1889  	}
  1890  	if isUpdate {
  1891  		err = servicesManager.UpdateVirtualRepository().Swift(params)
  1892  	} else {
  1893  		err = servicesManager.CreateVirtualRepository().Swift(params)
  1894  	}
  1895  	return err
  1896  }
  1897  
  1898  func virtualTerraformHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1899  	params := services.NewTerraformVirtualRepositoryParams()
  1900  	err := json.Unmarshal(jsonConfig, &params)
  1901  	if errorutils.CheckError(err) != nil {
  1902  		return err
  1903  	}
  1904  	if isUpdate {
  1905  		err = servicesManager.UpdateVirtualRepository().Terraform(params)
  1906  	} else {
  1907  		err = servicesManager.CreateVirtualRepository().Terraform(params)
  1908  	}
  1909  	return err
  1910  }
  1911  
  1912  func virtualGenericHandler(servicesManager artifactory.ArtifactoryServicesManager, jsonConfig []byte, isUpdate bool) error {
  1913  	params := services.NewGenericVirtualRepositoryParams()
  1914  	err := json.Unmarshal(jsonConfig, &params)
  1915  	if errorutils.CheckError(err) != nil {
  1916  		return err
  1917  	}
  1918  	if isUpdate {
  1919  		err = servicesManager.UpdateVirtualRepository().Generic(params)
  1920  	} else {
  1921  		err = servicesManager.CreateVirtualRepository().Generic(params)
  1922  	}
  1923  	return err
  1924  }