diff --git a/pkg/core/certifier/challengers/dns01/conohavpsv3/internal/lego.go b/pkg/core/certifier/challengers/dns01/conohavpsv3/internal/lego.go index 66b4b544..b7ac77ec 100644 --- a/pkg/core/certifier/challengers/dns01/conohavpsv3/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/conohavpsv3/internal/lego.go @@ -120,7 +120,6 @@ func (d *DNSProvider) Present(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("conohavpsv3: error when list zones: %w", err) } - // REF: https://doc.conoha.jp/reference/api-vps3/api-dns-vps3/dnsaas-create_record-v3/ response, err := d.client.DnsCreateRecordWithContext(ctx, zoneInfo.UUID, &conohavpssdk.DnsCreateRecordRequest{ Name: lo.ToPtr(info.EffectiveFQDN), Type: lo.ToPtr("TXT"), @@ -187,7 +186,6 @@ func (d *DNSProvider) findZone(ctx context.Context, zoneName string) (*conohavps offset := 0 limit := 10 for { - // REF: https://doc.conoha.jp/reference/api-vps3/api-dns-vps3/dnsaas-get_domains_list-v3/ request := &conohavpssdk.DnsGetDomainsListRequest{ Offset: lo.ToPtr(offset), Limit: lo.ToPtr(limit), diff --git a/pkg/core/certifier/challengers/dns01/ctcccloud/internal/lego.go b/pkg/core/certifier/challengers/dns01/ctcccloud/internal/lego.go index ab900bd0..62123384 100644 --- a/pkg/core/certifier/challengers/dns01/ctcccloud/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/ctcccloud/internal/lego.go @@ -102,7 +102,6 @@ func (d *DNSProvider) Present(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("ctyun: %w", err) } - // REF: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=122&api=11259&data=181&isNormal=1&vid=259 request := &ctyundns.AddRecordRequest{ Domain: lo.ToPtr(dns01.UnFqdn(authZone)), Host: lo.ToPtr(subDomain), @@ -134,7 +133,6 @@ func (d *DNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("tencentcloud-eo: unknown record ID for '%s'", info.EffectiveFQDN) } - // REF: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=122&api=11262&data=181&isNormal=1&vid=259 request := &ctyundns.DeleteRecordRequest{ RecordId: lo.ToPtr(recordID), } diff --git a/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go b/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go index af3264e1..550cb371 100644 --- a/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go @@ -109,7 +109,6 @@ func (d *DNSProvider) Present(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("dynv6: error when list zones: %w", err) } - // REF: https://dynv6.github.io/api-spec/#tag/records/operation/addRecord response, err := d.client.AddRecordWithContext(ctx, zoneInfo.ID, &dynv6sdk.AddRecordRequest{ Type: lo.ToPtr("TXT"), Name: lo.ToPtr(subDomain), @@ -172,7 +171,6 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) { } func (d *DNSProvider) findZone(ctx context.Context, zoneName string) (*dynv6sdk.ZoneRecord, error) { - // REF: https://dynv6.github.io/api-spec/#tag/zones/operation/findZones zones, err := d.client.ListZonesWithContext(ctx) if err != nil { return nil, err diff --git a/pkg/core/certifier/challengers/dns01/linode/internal/lego.go b/pkg/core/certifier/challengers/dns01/linode/internal/lego.go index c6fdd4b2..0295855b 100644 --- a/pkg/core/certifier/challengers/dns01/linode/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/linode/internal/lego.go @@ -113,7 +113,6 @@ func (d *DNSProvider) Present(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("linode: error when list domains: %w", err) } - // REF: https://techdocs.akamai.com/linode-api/reference/post-domain-record response, err := d.client.CreateDomainRecordWithContext(ctx, lo.FromPtr(zoneInfo.ID), &linodesdk.CreateDomainRecordRequest{ Name: lo.ToPtr(dns01.UnFqdn(info.EffectiveFQDN)), Type: lo.ToPtr("TXT"), @@ -194,7 +193,6 @@ func (d *DNSProvider) findZone(ctx context.Context, zoneName string) (*linodesdk page := 1 pageSize := 100 for { - // REF: https://techdocs.akamai.com/linode-api/reference/get-domains request := &linodesdk.ListDomainsRequest{ Page: lo.ToPtr(page), PageSize: lo.ToPtr(pageSize), diff --git a/pkg/core/certifier/challengers/dns01/qingcloud/internal/lego.go b/pkg/core/certifier/challengers/dns01/qingcloud/internal/lego.go index 96ea768a..8a41be58 100644 --- a/pkg/core/certifier/challengers/dns01/qingcloud/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/qingcloud/internal/lego.go @@ -98,7 +98,6 @@ func (d *DNSProvider) Present(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("qingcloud: could not find zone for domain %q: %w", domain, err) } - // REF: https://docsv4.qingcloud.com/user_guide/development_docs/api/api_list/dns/record/#_createrecord request := &qingcloudsdk.CreateRecordRequest{ ZoneName: lo.ToPtr(authZone), DomainName: lo.ToPtr(info.EffectiveFQDN), @@ -141,7 +140,6 @@ func (d *DNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string return fmt.Errorf("qingcloud: unknown record ID for '%s'", info.EffectiveFQDN) } - // REF: https://docsv4.qingcloud.com/user_guide/development_docs/api/api_list/dns/record/#_deleterecord if _, err := d.client.DeleteRecordWithContext(ctx, []*int64{recordID}); err != nil { return fmt.Errorf("qingcloud: error when delete record: %w", err) } diff --git a/pkg/core/certmgr/providers/digitalocean-certificate/digitalocean_certificate.go b/pkg/core/certmgr/providers/digitalocean-certificate/digitalocean_certificate.go index 33399b79..2c0a604f 100644 --- a/pkg/core/certmgr/providers/digitalocean-certificate/digitalocean_certificate.go +++ b/pkg/core/certmgr/providers/digitalocean-certificate/digitalocean_certificate.go @@ -89,7 +89,7 @@ func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*Uplo Page: lo.ToPtr(listCertificatesPage), PerPage: lo.ToPtr(listCertificatesPerPage), } - listCertificatesResp, err := c.sdkClient.ListCertificates(listCertificatesReq) + listCertificatesResp, err := c.sdkClient.ListCertificatesWithContext(ctx, listCertificatesReq) c.logger.Debug("sdk request 'ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) if err != nil { return nil, fmt.Errorf("failed to execute sdk request 'ListCertificates': %w", err) diff --git a/pkg/core/certmgr/providers/gcore-cdn/gcore_cdn.go b/pkg/core/certmgr/providers/gcore-cdn/gcore_cdn.go index 9c0ab68b..de081055 100644 --- a/pkg/core/certmgr/providers/gcore-cdn/gcore_cdn.go +++ b/pkg/core/certmgr/providers/gcore-cdn/gcore_cdn.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "log/slog" + "strconv" "time" gcore "github.com/G-Core/gcorelabscdn-go/gcore/provider" @@ -58,29 +59,56 @@ func (c *Certmgr) SetLogger(logger *slog.Logger) { } func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*UploadResult, error) { - // 新增证书 - // REF: https://api.gcore.com/docs/cdn#tag/SSL-certificates/operation/add_ssl_certificates - createCertificateReq := &sslcerts.CreateRequest{ + // Add SSL certificate + // REF: https://gcore.com/docs/api-reference/cdn/ssl-certificates/add-ssl-certificate + addSSLDataReq := &sslcerts.CreateRequest{ Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), Cert: certPEM, PrivateKey: privkeyPEM, Automated: false, ValidateRootCA: false, } - createCertificateResp, err := c.sdkClient.Create(ctx, createCertificateReq) - c.logger.Debug("sdk request 'sslcerts.Create'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) + addSSLDataResp, err := c.sdkClient.Create(ctx, addSSLDataReq) + c.logger.Debug("sdk request 'sslData.Add'", slog.Any("request", addSSLDataReq), slog.Any("response", addSSLDataResp)) if err != nil { - return nil, fmt.Errorf("failed to execute sdk request 'sslcerts.Create': %w", err) + return nil, fmt.Errorf("failed to execute sdk request 'sslData.Add': %w", err) } return &UploadResult{ - CertId: fmt.Sprintf("%d", createCertificateResp.ID), - CertName: createCertificateResp.Name, + CertId: fmt.Sprintf("%d", addSSLDataResp.ID), + CertName: addSSLDataResp.Name, }, nil } func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, certPEM, privkeyPEM string) (*ReplaceResult, error) { - return nil, core.ErrUnsupported + sslId, err := strconv.ParseInt(certIdOrName, 10, 64) + if err != nil { + return nil, err + } + + // Get SSL certificate details + // REF: https://gcore.com/docs/api-reference/cdn/ssl-certificates/get-ssl-certificate-details + getSSLDataDetailResp, err := c.sdkClient.Get(ctx, sslId) + c.logger.Debug("sdk request 'sslData.GetDetail'", slog.Any("params.sslId", sslId), slog.Any("response", getSSLDataDetailResp)) + if err != nil { + return nil, fmt.Errorf("failed to execute sdk request 'sslData.GetDetail': %w", err) + } + + // Change SSL certificate + // REF: https://gcore.com/docs/api-reference/cdn/ssl-certificates/change-ssl-certificate + changeSSLDataReq := &sslcerts.UpdateRequest{ + Name: getSSLDataDetailResp.Name, + Cert: certPEM, + PrivateKey: privkeyPEM, + ValidateRootCA: false, + } + changeSSLDataResp, err := c.sdkClient.Update(ctx, sslId, changeSSLDataReq) + c.logger.Debug("sdk request 'sslData.Change'", slog.Any("request", changeSSLDataReq), slog.Any("response", changeSSLDataResp)) + if err != nil { + return nil, fmt.Errorf("failed to execute sdk request 'sslData.Change': %w", err) + } + + return &ReplaceResult{}, nil } func createSDKClient(apiToken string) (*sslcerts.Service, error) { diff --git a/pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter.go b/pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter.go index 577db92a..c3db1792 100644 --- a/pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter.go +++ b/pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter.go @@ -68,7 +68,7 @@ func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*Uplo } // SSL 证书上传 - // REF: https://apifox.com/apidoc/shared/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-69943046 + // REF: https://api.rainyun.com/#/paths/product-sslcenter/post sslCenterCreateReq := &rainyunsdk.SslCenterCreateRequest{ Cert: certPEM, Key: privkeyPEM, @@ -96,7 +96,7 @@ func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, certPEM, pri } // SSL 证书替换操作 - // REF: https://s.apifox.cn/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-69943049 + // REF: https://api.rainyun.com/#/paths/product-sslcenter-:id/put sslCenterUpdateReq := &rainyunsdk.SslCenterUpdateRequest{ Cert: certPEM, Key: privkeyPEM, @@ -118,8 +118,8 @@ func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPEM string) } // 获取 SSL 证书列表 - // REF: https://apifox.com/apidoc/shared/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-69943046 - // REF: https://apifox.com/apidoc/shared/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-69943048 + // REF: https://api.rainyun.com/#/paths/product-sslcenter/get + // REF: https://api.rainyun.com/#/paths/product-sslcenter-:id/get sslCenterListPage := 1 sslCenterListPerPage := 100 for { diff --git a/pkg/core/deployer/providers/cachefly/cachefly.go b/pkg/core/deployer/providers/cachefly/cachefly.go index cf6cc42c..2b1d29e5 100644 --- a/pkg/core/deployer/providers/cachefly/cachefly.go +++ b/pkg/core/deployer/providers/cachefly/cachefly.go @@ -56,7 +56,7 @@ func (d *Deployer) SetLogger(logger *slog.Logger) { func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM string) (*DeployResult, error) { // 上传证书 - // REF: https://api.cachefly.com/api/2.5/docs#tag/Certificates/paths/~1certificates/post + // REF: https://api.cachefly.com/api/v2/docs/api/#tag/Certificates/operation/post-certificates createCertificateReq := &cacheflysdk.CreateCertificateRequest{ Certificate: lo.ToPtr(certPEM), CertificateKey: lo.ToPtr(privkeyPEM), diff --git a/pkg/core/deployer/providers/flexcdn/flexcdn.go b/pkg/core/deployer/providers/flexcdn/flexcdn.go index dd91ce82..39c58f54 100644 --- a/pkg/core/deployer/providers/flexcdn/flexcdn.go +++ b/pkg/core/deployer/providers/flexcdn/flexcdn.go @@ -97,7 +97,7 @@ func (d *Deployer) deployToCertificate(ctx context.Context, certPEM, privkeyPEM } // 修改证书 - // REF: https://flexcdn.cloud/dev/api/service/SSLCertService?role=user#updateSSLCert + // REF: https://flexcdn.cn/developer/api/service/SSLCertService updateSSLCertReq := &flexcdnsdk.UpdateSSLCertRequest{ SSLCertId: d.config.CertificateId, IsOn: true, diff --git a/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go b/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go index 05aa0928..5a53321e 100644 --- a/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go +++ b/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go @@ -10,6 +10,7 @@ import ( "github.com/G-Core/gcorelabscdn-go/gcore/provider" "github.com/G-Core/gcorelabscdn-go/resources" "github.com/G-Core/gcorelabscdn-go/sslcerts" + "github.com/samber/lo" "github.com/certimate-go/certimate/pkg/core" cmgrimpl "github.com/certimate-go/certimate/pkg/core/certmgr/providers/gcore-cdn" @@ -98,29 +99,15 @@ func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM string) (*Dep cloudCertId, _ = strconv.ParseInt(upres.CertId, 10, 64) } else { - // 获取证书 - // REF: https://api.gcore.com/docs/cdn#tag/SSL-certificates/paths/~1cdn~1sslData~1%7Bssl_id%7D/get - getCertificateDetailResp, err := d.sdkClients.SSLCerts.Get(ctx, d.config.CertificateId) - d.logger.Debug("sdk request 'sslcerts.Get'", slog.Int64("params.sslId", d.config.CertificateId), slog.Any("response", getCertificateDetailResp)) - if err != nil { - return nil, fmt.Errorf("failed to execute sdk request 'sslcerts.Get': %w", err) - } + cloudCertId = d.config.CertificateId // 更新证书 - // REF: https://api.gcore.com/docs/cdn#tag/SSL-certificates/paths/~1cdn~1sslData~1%7Bssl_id%7D/get - changeCertificateReq := &sslcerts.UpdateRequest{ - Name: getCertificateDetailResp.Name, - Cert: certPEM, - PrivateKey: privkeyPEM, - ValidateRootCA: false, - } - changeCertificateResp, err := d.sdkClients.SSLCerts.Update(ctx, getCertificateDetailResp.ID, changeCertificateReq) - d.logger.Debug("sdk request 'sslcerts.Update'", slog.Int64("params.sslId", getCertificateDetailResp.ID), slog.Any("request", changeCertificateReq), slog.Any("response", changeCertificateResp)) + rplres, err := d.sdkCertmgr.Replace(ctx, strconv.FormatInt(cloudCertId, 10), certPEM, privkeyPEM) if err != nil { - return nil, fmt.Errorf("failed to execute sdk request 'sslcerts.Update': %w", err) + return nil, fmt.Errorf("failed to replace certificate file: %w", err) + } else { + d.logger.Info("ssl certificate replaced", slog.Any("result", rplres)) } - - cloudCertId = changeCertificateResp.ID } // 获取 CDN 资源详情 @@ -142,14 +129,10 @@ func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM string) (*Dep SSlEnabled: true, SSLData: int(cloudCertId), ProxySSLEnabled: getResourceResp.ProxySSLEnabled, + ProxySSLCA: lo.Ternary(getResourceResp.ProxySSLCA != 0, &getResourceResp.ProxySSLCA, nil), + ProxySSLData: lo.Ternary(getResourceResp.ProxySSLData != 0, &getResourceResp.ProxySSLData, nil), Options: &gcore.Options{}, } - if getResourceResp.ProxySSLCA != 0 { - updateResourceReq.ProxySSLCA = &getResourceResp.ProxySSLCA - } - if getResourceResp.ProxySSLData != 0 { - updateResourceReq.ProxySSLData = &getResourceResp.ProxySSLData - } updateResourceResp, err := d.sdkClients.Resources.Update(ctx, d.config.ResourceId, updateResourceReq) d.logger.Debug("sdk request 'resources.Update'", slog.Int64("params.resourceId", d.config.ResourceId), slog.Any("request", updateResourceReq), slog.Any("response", updateResourceResp)) if err != nil { diff --git a/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go b/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go index 208e5e02..11c84d36 100644 --- a/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go +++ b/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go @@ -89,7 +89,7 @@ func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM string) (*Dep } // RCDN SSL 绑定域名 - // REF: https://apifox.com/apidoc/shared/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-184214120 + // REF: https://api.rainyun.com/#/paths/product-rcdn-instance-:id-ssl_bind/post certId, _ := strconv.ParseInt(upres.CertId, 10, 64) rcdnInstanceSslBindReq := &rainyunsdk.RcdnInstanceSslBindRequest{ CertId: certId, diff --git a/pkg/sdk3rd/1panel/client.go b/pkg/sdk3rd/1panel/client.go index ded7e98e..c8608a5c 100644 --- a/pkg/sdk3rd/1panel/client.go +++ b/pkg/sdk3rd/1panel/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for 1Panel v1. +// API documentation: https://1panel.cn/docs/v1/dev_manual/api_manual/ package onepanel import ( diff --git a/pkg/sdk3rd/1panel/v2/client.go b/pkg/sdk3rd/1panel/v2/client.go index 5a879f0d..7470f70c 100644 --- a/pkg/sdk3rd/1panel/v2/client.go +++ b/pkg/sdk3rd/1panel/v2/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for 1Panel v2. +// API documentation: https://1panel.cn/docs/v2/dev_manual/api_manual/ package v2 import ( diff --git a/pkg/sdk3rd/alibabacloud/oss/client.go b/pkg/sdk3rd/alibabacloud/oss/client.go index 3b0b1804..b3e41271 100644 --- a/pkg/sdk3rd/alibabacloud/oss/client.go +++ b/pkg/sdk3rd/alibabacloud/oss/client.go @@ -1,4 +1,6 @@ -package oss +// A simple SDK client for AliababaCloud OSS. +// API documentation: https://www.alibabacloud.com/help/en/oss/developer-reference/list-of-operations-by-function +package oss import ( "crypto/md5" diff --git a/pkg/sdk3rd/apisix/client.go b/pkg/sdk3rd/apisix/client.go index 400899c9..ca2d2423 100644 --- a/pkg/sdk3rd/apisix/client.go +++ b/pkg/sdk3rd/apisix/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for APISIX. +// API documentation: https://apisix.apache.org/zh/docs/apisix/admin-api/ package apisix import ( diff --git a/pkg/sdk3rd/baiducloud/cert/client.go b/pkg/sdk3rd/baiducloud/cert/client.go index e2e6f150..92073d9a 100644 --- a/pkg/sdk3rd/baiducloud/cert/client.go +++ b/pkg/sdk3rd/baiducloud/cert/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for BaiduCloud SSL service. +// Based on github.com/baidubce/bce-sdk-go. package cert import ( diff --git a/pkg/sdk3rd/baishan/client.go b/pkg/sdk3rd/baishan/client.go index 6d7124a1..25453f16 100644 --- a/pkg/sdk3rd/baishan/client.go +++ b/pkg/sdk3rd/baishan/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for BaishanCloud. +// API documentation: https://portal.baishancloud.com/track/document/api/1/1249 package baishan import ( diff --git a/pkg/sdk3rd/btpanel/client.go b/pkg/sdk3rd/btpanel/client.go index f65f9017..c039c1ce 100644 --- a/pkg/sdk3rd/btpanel/client.go +++ b/pkg/sdk3rd/btpanel/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for aaPanel. +// API documentation: https://www.aapanel.com/docs/api/api-list.html package btpanel import ( @@ -162,5 +164,6 @@ func generateSignature(timestamp string, apiKey string) string { signMd5 := md5.Sum([]byte(timestamp + keyMd5Hex)) signMd5Hex := strings.ToLower(hex.EncodeToString(signMd5[:])) + return signMd5Hex } diff --git a/pkg/sdk3rd/btpanelgo/client.go b/pkg/sdk3rd/btpanelgo/client.go index e297e67a..af790c85 100644 --- a/pkg/sdk3rd/btpanelgo/client.go +++ b/pkg/sdk3rd/btpanelgo/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for aaPanel Windows Go version. +// API documentation: https://www.aapanel.com/docs/api/api-list.html package btpanelgo import ( @@ -213,5 +215,6 @@ func generateSignature(timestamp string, apiKey string) string { signMd5 := md5.Sum([]byte(timestamp + keyMd5Hex)) signMd5Hex := strings.ToLower(hex.EncodeToString(signMd5[:])) + return signMd5Hex } diff --git a/pkg/sdk3rd/btwaf/client.go b/pkg/sdk3rd/btwaf/client.go index 66c0d158..a83ec409 100644 --- a/pkg/sdk3rd/btwaf/client.go +++ b/pkg/sdk3rd/btwaf/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for aaWAF. +// API documentation: https://github.com/aaPanel/aaWAF/blob/main/API.md package btwaf import ( diff --git a/pkg/sdk3rd/bunny/client.go b/pkg/sdk3rd/bunny/client.go index dd648d05..c766381c 100644 --- a/pkg/sdk3rd/bunny/client.go +++ b/pkg/sdk3rd/bunny/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Bunny. +// API documentation: https://docs.bunny.net/api-reference package bunny import ( diff --git a/pkg/sdk3rd/cachefly/client.go b/pkg/sdk3rd/cachefly/client.go index 2430055b..05b8a8b6 100644 --- a/pkg/sdk3rd/cachefly/client.go +++ b/pkg/sdk3rd/cachefly/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for CacheFly. +// API documentation: https://api.cachefly.com/api/v2/docs/api/ package cachefly import ( diff --git a/pkg/sdk3rd/cdnfly/client.go b/pkg/sdk3rd/cdnfly/client.go index a85feb26..354e431d 100644 --- a/pkg/sdk3rd/cdnfly/client.go +++ b/pkg/sdk3rd/cdnfly/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Cdnfly. +// API documentation: http://doc.cdnfly.com/shiyongjieshao.html package cdnfly import ( diff --git a/pkg/sdk3rd/cloudflare/client.go b/pkg/sdk3rd/cloudflare/client.go index 5a91eddf..f205708c 100644 --- a/pkg/sdk3rd/cloudflare/client.go +++ b/pkg/sdk3rd/cloudflare/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Cloudflare. +// API documentation: https://developers.cloudflare.com/api/ package cloudflare import ( diff --git a/pkg/sdk3rd/conoha/vps/v3/client.go b/pkg/sdk3rd/conoha/vps/v3/client.go index 63a018a2..e3779ee5 100644 --- a/pkg/sdk3rd/conoha/vps/v3/client.go +++ b/pkg/sdk3rd/conoha/vps/v3/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for ConoHa VPS v3. +// API documentation: https://doc.conoha.jp/reference/api-vps3/ package v3 import ( diff --git a/pkg/sdk3rd/cpanel/client.go b/pkg/sdk3rd/cpanel/client.go index d4c56785..1069a01a 100644 --- a/pkg/sdk3rd/cpanel/client.go +++ b/pkg/sdk3rd/cpanel/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for cPanel. +// API documentation: https://api.docs.cpanel.net/ package cpanel import ( diff --git a/pkg/sdk3rd/ctyun/ao/client.go b/pkg/sdk3rd/ctyun/ao/client.go index 5174edcc..c91c3f14 100644 --- a/pkg/sdk3rd/ctyun/ao/client.go +++ b/pkg/sdk3rd/ctyun/ao/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud AccessOne. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=113&vid=167 package ao import ( diff --git a/pkg/sdk3rd/ctyun/cdn/client.go b/pkg/sdk3rd/ctyun/cdn/client.go index 03802aef..d5930f79 100644 --- a/pkg/sdk3rd/ctyun/cdn/client.go +++ b/pkg/sdk3rd/ctyun/cdn/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud CDN. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=108&vid=154 package cdn import ( diff --git a/pkg/sdk3rd/ctyun/cms/client.go b/pkg/sdk3rd/ctyun/cms/client.go index cd224d9e..05b984b9 100644 --- a/pkg/sdk3rd/ctyun/cms/client.go +++ b/pkg/sdk3rd/ctyun/cms/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud CMS. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=152&vid=283 package cms import ( diff --git a/pkg/sdk3rd/ctyun/dns/client.go b/pkg/sdk3rd/ctyun/dns/client.go index ffaa9d35..e8615e9b 100644 --- a/pkg/sdk3rd/ctyun/dns/client.go +++ b/pkg/sdk3rd/ctyun/dns/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud DNS. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=122&vid=259 package dns import ( diff --git a/pkg/sdk3rd/ctyun/elb/client.go b/pkg/sdk3rd/ctyun/elb/client.go index 603e9d46..2143f01e 100644 --- a/pkg/sdk3rd/ctyun/elb/client.go +++ b/pkg/sdk3rd/ctyun/elb/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud ELB. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=24&vid=82 package elb import ( diff --git a/pkg/sdk3rd/ctyun/faas/client.go b/pkg/sdk3rd/ctyun/faas/client.go index 665c5e65..f80970b2 100644 --- a/pkg/sdk3rd/ctyun/faas/client.go +++ b/pkg/sdk3rd/ctyun/faas/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud FaaS. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=53&vid=40 package faas import ( diff --git a/pkg/sdk3rd/ctyun/icdn/client.go b/pkg/sdk3rd/ctyun/icdn/client.go index 8fe3536d..bbe364d9 100644 --- a/pkg/sdk3rd/ctyun/icdn/client.go +++ b/pkg/sdk3rd/ctyun/icdn/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud ICDN. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=112&vid=166 package icdn import ( diff --git a/pkg/sdk3rd/ctyun/lvdn/client.go b/pkg/sdk3rd/ctyun/lvdn/client.go index c616829c..14f793d0 100644 --- a/pkg/sdk3rd/ctyun/lvdn/client.go +++ b/pkg/sdk3rd/ctyun/lvdn/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for StateCloud LVDN. +// API documentation: https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=125&vid=261 package lvdn import ( diff --git a/pkg/sdk3rd/dcloud/unicloud/client.go b/pkg/sdk3rd/dcloud/unicloud/client.go index ef58a1e9..ac80022b 100644 --- a/pkg/sdk3rd/dcloud/unicloud/client.go +++ b/pkg/sdk3rd/dcloud/unicloud/client.go @@ -1,3 +1,4 @@ +// A mock HTTP client for uniCloud. package unicloud import ( diff --git a/pkg/sdk3rd/digitalocean/client.go b/pkg/sdk3rd/digitalocean/client.go index 7f713499..abeb320c 100644 --- a/pkg/sdk3rd/digitalocean/client.go +++ b/pkg/sdk3rd/digitalocean/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for DigitalOcean. +// API documentation: https://docs.digitalocean.com/reference/api/ package digitalocean import ( diff --git a/pkg/sdk3rd/dogecloud/client.go b/pkg/sdk3rd/dogecloud/client.go index 39ac75ec..600b08f4 100644 --- a/pkg/sdk3rd/dogecloud/client.go +++ b/pkg/sdk3rd/dogecloud/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for DogeCloud. +// API documentation: https://docs.dogecloud.com/ package dogecloud import ( diff --git a/pkg/sdk3rd/dokploy/client.go b/pkg/sdk3rd/dokploy/client.go index 088e2967..ebb393e8 100644 --- a/pkg/sdk3rd/dokploy/client.go +++ b/pkg/sdk3rd/dokploy/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Dokploy. +// API documentation: https://docs.dokploy.com/docs/api package dokploy import ( diff --git a/pkg/sdk3rd/dynv6/client.go b/pkg/sdk3rd/dynv6/client.go index 92d54d6b..d2e6dc6b 100644 --- a/pkg/sdk3rd/dynv6/client.go +++ b/pkg/sdk3rd/dynv6/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Dynv6. +// API documentation: https://dynv6.com/docs/apis package dynv6 import ( diff --git a/pkg/sdk3rd/flexcdn/client.go b/pkg/sdk3rd/flexcdn/client.go index 6e443e43..bcb6a247 100644 --- a/pkg/sdk3rd/flexcdn/client.go +++ b/pkg/sdk3rd/flexcdn/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for FlexCDN. +// API documentation: https://flexcdn.cn/docs/api/list package flexcdn import ( diff --git a/pkg/sdk3rd/flyio/client.go b/pkg/sdk3rd/flyio/client.go index a8ec09ad..da793f28 100644 --- a/pkg/sdk3rd/flyio/client.go +++ b/pkg/sdk3rd/flyio/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Fly.io. +// API documentation: https://fly.io/docs/machines/api/ package flyio import ( diff --git a/pkg/sdk3rd/goedge/client.go b/pkg/sdk3rd/goedge/client.go index d7e21607..f98bb859 100644 --- a/pkg/sdk3rd/goedge/client.go +++ b/pkg/sdk3rd/goedge/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for GoEdge. +// API documentation: https://goedge.cloud/docs/API/List.md package goedge import ( diff --git a/pkg/sdk3rd/huaweicloud/obs/client.go b/pkg/sdk3rd/huaweicloud/obs/client.go index 96ef9856..bc61d87e 100644 --- a/pkg/sdk3rd/huaweicloud/obs/client.go +++ b/pkg/sdk3rd/huaweicloud/obs/client.go @@ -1,4 +1,6 @@ -package obs +// A simple SDK client for HuaweiCloud OBS. +// API documentation: https://support.huaweicloud.com/api-obs/obs_04_0005.html +package obs import ( "crypto/md5" diff --git a/pkg/sdk3rd/kong/client.go b/pkg/sdk3rd/kong/client.go index 3c186078..2763cdf2 100644 --- a/pkg/sdk3rd/kong/client.go +++ b/pkg/sdk3rd/kong/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Kong. +// API documentation: https://developer.konghq.com/api/ package kong import ( diff --git a/pkg/sdk3rd/lecdn/v3/client/client.go b/pkg/sdk3rd/lecdn/v3/client/client.go index be9a28a2..a999edf0 100644 --- a/pkg/sdk3rd/lecdn/v3/client/client.go +++ b/pkg/sdk3rd/lecdn/v3/client/client.go @@ -1,3 +1,4 @@ +// A simple SDK client for LeCDN v3 as user. package client import ( diff --git a/pkg/sdk3rd/lecdn/v3/master/client.go b/pkg/sdk3rd/lecdn/v3/master/client.go index 339e0a52..daaa51f3 100644 --- a/pkg/sdk3rd/lecdn/v3/master/client.go +++ b/pkg/sdk3rd/lecdn/v3/master/client.go @@ -1,3 +1,4 @@ +// A simple SDK client for LeCDN v3 as admin. package master import ( diff --git a/pkg/sdk3rd/linode/client.go b/pkg/sdk3rd/linode/client.go index d6d59335..be4ea364 100644 --- a/pkg/sdk3rd/linode/client.go +++ b/pkg/sdk3rd/linode/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Linode. +// API documentation: https://techdocs.akamai.com/linode-api/reference/api package linode import ( diff --git a/pkg/sdk3rd/mohua/client.go b/pkg/sdk3rd/mohua/client.go index ac05e161..49b9577a 100644 --- a/pkg/sdk3rd/mohua/client.go +++ b/pkg/sdk3rd/mohua/client.go @@ -1,3 +1,4 @@ +// A simple SDK client for MohuaTech. package mohua import ( diff --git a/pkg/sdk3rd/netlify/client.go b/pkg/sdk3rd/netlify/client.go index 093bbca1..7a0a9967 100644 --- a/pkg/sdk3rd/netlify/client.go +++ b/pkg/sdk3rd/netlify/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Netlify. +// API documentation: https://open-api.netlify.com/ package netlify import ( diff --git a/pkg/sdk3rd/nginxproxymanager/client.go b/pkg/sdk3rd/nginxproxymanager/client.go index d25b07f9..eec70506 100644 --- a/pkg/sdk3rd/nginxproxymanager/client.go +++ b/pkg/sdk3rd/nginxproxymanager/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for NginxProxyManager. +// API documentation: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/3265 package nginxproxymanager import ( diff --git a/pkg/sdk3rd/proxmoxve/client.go b/pkg/sdk3rd/proxmoxve/client.go index 6e23b38e..0664a4b0 100644 --- a/pkg/sdk3rd/proxmoxve/client.go +++ b/pkg/sdk3rd/proxmoxve/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Proxmox VE. +// API documentation: https://pve.proxmox.com/pve-docs/api-viewer/index.html package proxmoxve import ( diff --git a/pkg/sdk3rd/qingcloud/dns/client.go b/pkg/sdk3rd/qingcloud/dns/client.go index d98d9dcf..60982f88 100644 --- a/pkg/sdk3rd/qingcloud/dns/client.go +++ b/pkg/sdk3rd/qingcloud/dns/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for QingCloud DNS. +// API documentation: https://docsv4.qingcloud.com/user_guide/development_docs/api/api_list/dns/api_intro/ package dns import ( diff --git a/pkg/sdk3rd/qingcloud/lb/service.go b/pkg/sdk3rd/qingcloud/lb/service.go index d0e23cfb..47068931 100644 --- a/pkg/sdk3rd/qingcloud/lb/service.go +++ b/pkg/sdk3rd/qingcloud/lb/service.go @@ -1,4 +1,6 @@ -package lb +// An extension SDK client for QingCloud LB service. +// Based on github.com/yunify/qingcloud-sdk-go. +package lb import ( "fmt" diff --git a/pkg/sdk3rd/qiniu/doc.go b/pkg/sdk3rd/qiniu/doc.go new file mode 100644 index 00000000..5931d1ca --- /dev/null +++ b/pkg/sdk3rd/qiniu/doc.go @@ -0,0 +1,3 @@ +// An extension SDK client for Qiniu. +// Based on github.com/qiniu/go-sdk. +package qiniu \ No newline at end of file diff --git a/pkg/sdk3rd/rainyun/client.go b/pkg/sdk3rd/rainyun/client.go index 1396d3d8..6b33a763 100644 --- a/pkg/sdk3rd/rainyun/client.go +++ b/pkg/sdk3rd/rainyun/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Rainyun. +// API documentation: https://api.rainyun.com/ package rainyun import ( diff --git a/pkg/sdk3rd/ratpanel/client.go b/pkg/sdk3rd/ratpanel/client.go index 0361584e..2fddaac6 100644 --- a/pkg/sdk3rd/ratpanel/client.go +++ b/pkg/sdk3rd/ratpanel/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for AcePanel. +// API documentation: https://acepanel.net/en/advanced/api package ratpanel import ( diff --git a/pkg/sdk3rd/ratpanel/signer.go b/pkg/sdk3rd/ratpanel/signer.go index 74c62eab..c0367b01 100644 --- a/pkg/sdk3rd/ratpanel/signer.go +++ b/pkg/sdk3rd/ratpanel/signer.go @@ -20,6 +20,7 @@ type signer struct { func (s *signer) Sign(req *http.Request) error { // API 签名机制: // https://ratpanel.github.io/advanced/api#authentication-mechanism + // https://acepanel.net/en/advanced/api payloadStr := "" if req.Body != nil { diff --git a/pkg/sdk3rd/safeline/client.go b/pkg/sdk3rd/safeline/client.go index 70ec310a..a74e0de8 100644 --- a/pkg/sdk3rd/safeline/client.go +++ b/pkg/sdk3rd/safeline/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for SafeLine. +// API documentation: https://help.waf-ce.chaitin.cn/node/01973fc6-e25e-7eda-8ea8-dae97bdd4213 package safeline import ( diff --git a/pkg/sdk3rd/samwaf/client.go b/pkg/sdk3rd/samwaf/client.go index a262d7b1..fa089350 100644 --- a/pkg/sdk3rd/samwaf/client.go +++ b/pkg/sdk3rd/samwaf/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for SamWAF. +// API documentation: https://doc.samwaf.com/api/ package samwaf import ( diff --git a/pkg/sdk3rd/synologydsm/client.go b/pkg/sdk3rd/synologydsm/client.go index 5dd94c11..76f335fe 100644 --- a/pkg/sdk3rd/synologydsm/client.go +++ b/pkg/sdk3rd/synologydsm/client.go @@ -1,3 +1,4 @@ +// A mock HTTP client for Synology DSM. package synologydsm import ( diff --git a/pkg/sdk3rd/ucloud/ucdn/client.go b/pkg/sdk3rd/ucloud/ucdn/client.go index a9eb1bf0..cb66be0f 100644 --- a/pkg/sdk3rd/ucloud/ucdn/client.go +++ b/pkg/sdk3rd/ucloud/ucdn/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud CDN service. +// Based on github.com/ucloud/ucloud-sdk-go. package ucdn import ( diff --git a/pkg/sdk3rd/ucloud/uewaf/client.go b/pkg/sdk3rd/ucloud/uewaf/client.go index e0dd2427..b67325e7 100644 --- a/pkg/sdk3rd/ucloud/uewaf/client.go +++ b/pkg/sdk3rd/ucloud/uewaf/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud WAF service. +// Based on github.com/ucloud/ucloud-sdk-go. package uewaf import ( diff --git a/pkg/sdk3rd/ucloud/ufile/client.go b/pkg/sdk3rd/ucloud/ufile/client.go index aee06624..1379f412 100644 --- a/pkg/sdk3rd/ucloud/ufile/client.go +++ b/pkg/sdk3rd/ucloud/ufile/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud OS service. +// Based on github.com/ucloud/ucloud-sdk-go. package ufile import ( diff --git a/pkg/sdk3rd/ucloud/ulb/client.go b/pkg/sdk3rd/ucloud/ulb/client.go index 1361321e..7a67472c 100644 --- a/pkg/sdk3rd/ucloud/ulb/client.go +++ b/pkg/sdk3rd/ucloud/ulb/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud LB service. +// Based on github.com/ucloud/ucloud-sdk-go. package ulb import ( diff --git a/pkg/sdk3rd/ucloud/upathx/client.go b/pkg/sdk3rd/ucloud/upathx/client.go index 9669427b..461219b7 100644 --- a/pkg/sdk3rd/ucloud/upathx/client.go +++ b/pkg/sdk3rd/ucloud/upathx/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud PathX service. +// Based on github.com/ucloud/ucloud-sdk-go. package upathx import ( diff --git a/pkg/sdk3rd/ucloud/ussl/client.go b/pkg/sdk3rd/ucloud/ussl/client.go index 95876543..6cd27710 100644 --- a/pkg/sdk3rd/ucloud/ussl/client.go +++ b/pkg/sdk3rd/ucloud/ussl/client.go @@ -1,3 +1,5 @@ +// An extension SDK client for UCloud SSL service. +// Based on github.com/ucloud/ucloud-sdk-go. package ussl import ( diff --git a/pkg/sdk3rd/upyun/console/client.go b/pkg/sdk3rd/upyun/console/client.go index 2baf1da4..4eb047c5 100644 --- a/pkg/sdk3rd/upyun/console/client.go +++ b/pkg/sdk3rd/upyun/console/client.go @@ -1,3 +1,4 @@ +// A mock HTTP client for Upyun Console. package console import ( diff --git a/pkg/sdk3rd/vercel/client.go b/pkg/sdk3rd/vercel/client.go index 12886060..47880292 100644 --- a/pkg/sdk3rd/vercel/client.go +++ b/pkg/sdk3rd/vercel/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for Vercel. +// API documentation: https://vercel.com/docs/rest-api package vercel import ( diff --git a/pkg/sdk3rd/volcengine/tos/client.go b/pkg/sdk3rd/volcengine/tos/client.go index 8a7743f1..969ecd4d 100644 --- a/pkg/sdk3rd/volcengine/tos/client.go +++ b/pkg/sdk3rd/volcengine/tos/client.go @@ -1,4 +1,6 @@ -package tos +// A simple SDK client for VolcEngine TOS. +// API documentation: https://www.volcengine.com/docs/6349/74837 +package tos import ( "crypto/md5" diff --git a/pkg/sdk3rd/wangsu/cdn/client.go b/pkg/sdk3rd/wangsu/cdn/client.go index 6eb2ca6f..ffda5034 100644 --- a/pkg/sdk3rd/wangsu/cdn/client.go +++ b/pkg/sdk3rd/wangsu/cdn/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for WangsuCloud CDN. +// API documentation: https://www.wangsu.com/document/api-doc/product package cdn import ( diff --git a/pkg/sdk3rd/wangsu/cdnpro/client.go b/pkg/sdk3rd/wangsu/cdnpro/client.go index 718780a0..1caba35f 100644 --- a/pkg/sdk3rd/wangsu/cdnpro/client.go +++ b/pkg/sdk3rd/wangsu/cdnpro/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for WangsuCloud CDN. +// API documentation: https://www.wangsu.com/document/api-doc/product package cdnpro import ( diff --git a/pkg/sdk3rd/wangsu/certificate/client.go b/pkg/sdk3rd/wangsu/certificate/client.go index a6aebbe5..c2bbe430 100644 --- a/pkg/sdk3rd/wangsu/certificate/client.go +++ b/pkg/sdk3rd/wangsu/certificate/client.go @@ -1,3 +1,5 @@ +// A simple SDK client for WangsuCloud CDN. +// API documentation: https://www.wangsu.com/document/api-doc/product package certificate import ( diff --git a/pkg/sdk3rd/zenlayer/cdn/client.go b/pkg/sdk3rd/zenlayer/cdn/client.go index 4d7742bf..6718bdcd 100644 --- a/pkg/sdk3rd/zenlayer/cdn/client.go +++ b/pkg/sdk3rd/zenlayer/cdn/client.go @@ -1,4 +1,6 @@ -package cdn +// An extension SDK client for ZenlayerCloud CDN service. +// Based on github.com/zenlayer/zenlayercloud-sdk-go. +package cdn import ( "github.com/zenlayer/zenlayercloud-sdk-go/zenlayercloud/common" diff --git a/pkg/sdk3rd/zenlayer/zga/client.go b/pkg/sdk3rd/zenlayer/zga/client.go index c1c359a4..92a4edbe 100644 --- a/pkg/sdk3rd/zenlayer/zga/client.go +++ b/pkg/sdk3rd/zenlayer/zga/client.go @@ -1,4 +1,6 @@ -package zga +// An extension SDK client for ZenlayerCloud CDN service. +// Based on github.com/zenlayer/zenlayercloud-sdk-go. +package zga import ( "github.com/zenlayer/zenlayercloud-sdk-go/zenlayercloud/common"