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  }