func GetConnectionDetailWithRegion()

in internal/client/connections/connectors.go [831:927]


func GetConnectionDetailWithRegion(name string, region string, view string, minimal bool, overrides bool) (respBody []byte, err error) {
	var connectionPayload []byte
	u, _ := url.Parse(apiclient.GetBaseConnectorURLWithRegion(region))
	q := u.Query()
	if view != "" {
		q.Set("view", view)
	}
	u.Path = path.Join(u.Path, name)

	if minimal {
		apiclient.ClientPrintHttpResponse.Set(false)
	}

	respBody, err = apiclient.HttpClient(u.String())

	if minimal {
		c := connection{}
		err := json.Unmarshal(respBody, &c)
		if err != nil {
			return nil, err
		}

		c.ConnectorDetails = new(connectorDetails)
		c.ConnectorDetails.Name = getConnectorName(*c.ConnectorVersion)
		c.ConnectorDetails.Provider = getConnectorProvider(*c.ConnectorVersion)
		if c.ConnectorDetails.Provider != "customconnector" {
			c.ConnectorDetails.Version = new(int)
			*c.ConnectorDetails.Version = getConnectorVersion(*c.ConnectorVersion)
		} else {
			c.ConnectorDetails.VersionId = new(string)
			*c.ConnectorDetails.VersionId = getConnectorVersionId(*c.ConnectorVersion)
		}

		c.ConnectorVersion = nil
		c.Name = nil
		if overrides {
			switch c.AuthConfig.AuthType {
			case "USER_PASSWORD":
				if c.AuthConfig.UserPassword != nil && c.AuthConfig.UserPassword.Password != nil {
					p := c.AuthConfig.UserPassword.Password.SecretVersion
					c.AuthConfig.UserPassword.PasswordDetails = new(secretDetails)
					c.AuthConfig.UserPassword.PasswordDetails.SecretName = strings.Split(p, "/")[3]
					c.AuthConfig.UserPassword.Password = nil
				}
			case "OAUTH2_JWT_BEARER":
				if c.AuthConfig.Oauth2JwtBearer != nil && c.AuthConfig.Oauth2JwtBearer.ClientKey != nil {
					p := c.AuthConfig.Oauth2JwtBearer.ClientKey.SecretVersion
					c.AuthConfig.Oauth2JwtBearer.ClientKeyDetails = new(secretDetails)
					c.AuthConfig.Oauth2JwtBearer.ClientKeyDetails.SecretName = strings.Split(p, "/")[3]
					c.AuthConfig.Oauth2JwtBearer.ClientKey = nil
				}
			}
			if isGoogleConnection(c.ConnectorDetails.Name) {
				for _, configVar := range c.ConfigVariables {
					if configVar.Key == "project_id" {
						*configVar.StringValue = "$PROJECT_ID$"
					}
				}
			}
			if c.SslConfig != nil {
				if c.SslConfig.PrivateServerCertificate != nil && c.SslConfig.PrivateServerCertificate.SecretVersion != nil {
					p := *c.SslConfig.PrivateServerCertificate.SecretVersion
					c.SslConfig.PrivateServerCertificate.SecretDetails = new(secretDetails)
					c.SslConfig.PrivateServerCertificate.SecretDetails.SecretName = strings.Split(p, "/")[3]
					c.SslConfig.PrivateServerCertificate.SecretVersion = nil
				}
				if c.SslConfig.ClientCertificate != nil && c.SslConfig.ClientCertificate.SecretVersion != nil {
					p := *c.SslConfig.ClientCertificate.SecretVersion
					c.SslConfig.ClientCertificate.SecretDetails = new(secretDetails)
					c.SslConfig.ClientCertificate.SecretDetails.SecretName = strings.Split(p, "/")[3]
					c.SslConfig.ClientCertificate.SecretVersion = nil
				}
				if c.SslConfig.ClientPrivateKey != nil && c.SslConfig.ClientPrivateKey.SecretVersion != nil {
					p := *c.SslConfig.ClientPrivateKey.SecretVersion
					c.SslConfig.ClientPrivateKey.SecretDetails = new(secretDetails)
					c.SslConfig.ClientPrivateKey.SecretDetails.SecretName = strings.Split(p, "/")[3]
					c.SslConfig.ClientPrivateKey.SecretVersion = nil
				}
				if c.SslConfig.ClientPrivateKeyPass != nil && c.SslConfig.ClientPrivateKeyPass.SecretVersion != nil {
					p := *c.SslConfig.ClientPrivateKeyPass.SecretVersion
					c.SslConfig.ClientPrivateKeyPass.SecretDetails = new(secretDetails)
					c.SslConfig.ClientPrivateKeyPass.SecretDetails.SecretName = strings.Split(p, "/")[3]
					c.SslConfig.ClientPrivateKeyPass.SecretVersion = nil
				}
			}
		}
		connectionPayload, err = json.Marshal(c)
		if err != nil {
			return nil, err
		}
		apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting()) // set original print output
		apiclient.PrettyPrint(connectionPayload)

		return connectionPayload, err
	}
	return respBody, err
}