func CreateCustomVersion()

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
}