in internal/client/connections/custom-connections.go [126:163]
func CreateCustomVersion(connName string, versionName string, content []byte,
serviceAccountName string, serviceAccountProject string,
) (respBody []byte, err error) {
c := customConnectorVersionRequest{}
if err = json.Unmarshal(content, &c); err != nil {
return nil, err
}
// service account overrides have been provided, use them
if serviceAccountName != "" {
// set the project id if one was not presented
if serviceAccountProject == "" {
serviceAccountProject = apiclient.GetProjectID()
}
serviceAccountName = fmt.Sprintf("%s@%s.iam.gserviceaccount.com", serviceAccountName, serviceAccountProject)
// create the SA if it doesn't exist
if err = apiclient.CreateServiceAccount(serviceAccountName); err != nil {
return nil, err
}
}
if c.ServiceAccount != nil && serviceAccountName != "" {
*c.ServiceAccount = serviceAccountName
}
if content, err = json.Marshal(c); err != nil {
return nil, err
}
u, _ := url.Parse(apiclient.GetBaseCustomConnectorURL())
u.Path = path.Join(u.Path, connName, "customConnectorVersions")
q := u.Query()
q.Set("customConnectorVersionId", versionName)
u.RawQuery = q.Encode()
respBody, err = apiclient.HttpClient(u.String(), string(content))
return respBody, err
}