github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/cdm/v1/link/requests.go (about) 1 package link 2 3 import "github.com/chnsz/golangsdk" 4 5 const ( 6 GenericJdbcConnector = "generic-jdbc-connector" 7 ObsConnector = "obs-connector" 8 HdfsConnector = "hdfs-connector" 9 HbaseConnector = "hbase-connector" 10 HiveConnector = "hive-connector" 11 SftpConnector = "sftp-connector" 12 FtpConnector = "ftp-connector" 13 MongodbConnector = "mongodb-connector" 14 RedisConnector = "redis-connector" 15 KafkaConnector = "kafka-connector" 16 DisConnector = "dis-connector" 17 ElasticsearchConnector = "elasticsearch-connector" 18 DliConnector = "dli-connector" 19 OpentsdbConnector = "opentsdb-connector" 20 DmsKafkaConnector = "dms-kafka-connector" 21 22 // thirdparty-obs-connector is deprecated now 23 ThirdpartyObsConnector = "thirdparty-obs-connector" 24 ) 25 26 type LinkCreateOpts struct { 27 Links []Link `json:"links" required:"true"` 28 } 29 30 type Link struct { 31 Name string `json:"name" required:"true"` 32 // Connector name. The mappings between the connectors and links are as follows: 33 // generic-jdbc-connector: link to a relational database; 34 // obs-connector: link to OBS; 35 // hdfs-connector: link to HDFS; 36 // hbase-connector: link to HBase and link to CloudTable; 37 // hive-connector: link to Hive; 38 // ftp-connector/sftp-connector: link to an FTP or SFTP server; 39 // mongodb-connector: link to MongoDB; 40 // redis-connector: link to Redis; 41 // kafka-connector: link to Kafka; 42 // dis-connector: link to DIS; 43 // elasticsearch-connector: link to Elasticsearch/Cloud Search Service; 44 // dli-connector: link to DLI; 45 // opentsdb-connector: link to CloudTable OpenTSDB; 46 // dms-kafka-connector: link to DMS Kafka 47 ConnectorName string `json:"connector-name" required:"true"` 48 LinkConfigValues LinkConfigs `json:"link-config-values" required:"true"` 49 Enabled *bool `json:"enabled,omitempty"` 50 CreationUser string `json:"creation-user,omitempty"` 51 CreationDate *int `json:"creation-date,omitempty"` 52 UpdateUser string `json:"update-user,omitempty"` 53 UpdateDate *int `json:"update-date,omitempty"` 54 } 55 56 type LinkConfigs struct { 57 Configs []Configs `json:"configs,omitempty"` 58 } 59 60 type Configs struct { 61 Inputs []Input `json:"inputs" required:"true"` 62 Name string `json:"name" required:"true"` 63 } 64 65 type Input struct { 66 Name string `json:"name,omitempty"` 67 Value string `json:"value,omitempty"` 68 Type string `json:"type,omitempty"` 69 } 70 71 var RequestOpts = golangsdk.RequestOpts{ 72 MoreHeaders: map[string]string{"Content-Type": "application/json", "X-Language": "en-us"}, 73 } 74 75 func Create(c *golangsdk.ServiceClient, clusterId string, opts LinkCreateOpts) (*LinkCreateResponse, error) { 76 b, err := golangsdk.BuildRequestBody(opts, "") 77 if err != nil { 78 return nil, err 79 } 80 81 var rst LinkCreateResponse 82 _, err = c.Post(createLinkURL(c, clusterId), b, &rst, &golangsdk.RequestOpts{ 83 MoreHeaders: RequestOpts.MoreHeaders, 84 }) 85 return &rst, err 86 } 87 88 func Get(c *golangsdk.ServiceClient, clusterId string, linkName string) (*LinkDetail, error) { 89 var rst golangsdk.Result 90 _, err := c.Get(showLinkURL(c, clusterId, linkName), &rst.Body, &golangsdk.RequestOpts{ 91 MoreHeaders: RequestOpts.MoreHeaders, 92 }) 93 if err == nil { 94 var r LinkDetail 95 rst.ExtractInto(&r) 96 return &r, nil 97 } 98 return nil, err 99 } 100 101 func Update(c *golangsdk.ServiceClient, clusterId string, linkName string, opts LinkCreateOpts) (*LinkUpdateResponse, error) { 102 b, err := golangsdk.BuildRequestBody(opts, "") 103 if err != nil { 104 return nil, err 105 } 106 107 var rst LinkUpdateResponse 108 _, err = c.Put(updateLinkURL(c, clusterId, linkName), b, &rst, &golangsdk.RequestOpts{ 109 MoreHeaders: RequestOpts.MoreHeaders, 110 }) 111 return &rst, err 112 } 113 114 func Delete(c *golangsdk.ServiceClient, clusterId string, linkName string) (*LinkDeleteResponse, error) { 115 var rst LinkDeleteResponse 116 _, err := c.DeleteWithResponse(deleteLinkURL(c, clusterId, linkName), &rst, &golangsdk.RequestOpts{ 117 MoreHeaders: RequestOpts.MoreHeaders, 118 }) 119 return &rst, err 120 }