in internal/client/integrations/integrations.go [271:336]
func CreateVersion(name string, content []byte, overridesContent []byte, snapshot string,
userlabel string, grantPermission bool, basicInfo bool,
) (respBody []byte, err error) {
iversion := integrationVersion{}
if err = json.Unmarshal(content, &iversion); err != nil {
return nil, err
}
// remove any internal elements if exists
eversion := convertInternalToExternal(iversion)
// merge overrides if overrides were provided
if len(overridesContent) > 0 {
o := overrides{
IntegrationOverrides: integrationoverrides{
RunAsServiceAccount: nil,
DatabasePersistencePolicy: "DATABASE_PERSISTENCE_POLICY_UNSPECIFIED",
EnableVariableMasking: false,
CloudLoggingDetails: cloudLoggingDetails{
EnableCloudLogging: false,
CloudLoggingSeverity: "CLOUD_LOGGING_SEVERITY_UNSPECIFIED",
},
},
}
if err = json.Unmarshal(overridesContent, &o); err != nil {
return nil, err
}
if eversion, err = mergeOverrides(eversion, o, grantPermission); err != nil {
return nil, err
}
}
if snapshot != "" {
eversion.SnapshotNumber = snapshot
}
if userlabel != "" {
eversion.UserLabel = new(string)
*eversion.UserLabel = userlabel
}
if content, err = json.Marshal(eversion); err != nil {
return nil, err
}
if basicInfo {
apiclient.ClientPrintHttpResponse.Set(false)
}
u, _ := url.Parse(apiclient.GetBaseIntegrationURL())
u.Path = path.Join(u.Path, "integrations", name, "versions")
respBody, err = apiclient.HttpClient(u.String(), string(content))
if basicInfo {
var respBasicBody []byte
apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
if respBasicBody, err = getBasicInfo(respBody); err != nil {
return nil, err
}
apiclient.PrettyPrint(respBasicBody)
return respBasicBody, nil
}
return respBody, err
}